ipythonでdf.T??
を打ってヘルプを見てみる。
>>> df = pd.DataFrame()
>>> df.T??
Type:
property
String form: <property object at 0x7f1aa67d6540>
Source:
# df.T.fget
def transpose(self, *args, copy: bool = False) -> "DataFrame":
"""
Transpose index and columns.
(snip...)
df.T
はdf.transpose()
と同じらしい。
df.transpose??
しても同じヘルプしか見れなかったので、ソースコードをgrepして頑張って見つけた。
以下のように組込関数property
を使ってself.transepose()
をself.T
として呼べるように登録してあるらしい。
Python Documentation 組み込み関数 property
/opt/miniconda3/lib/python3.8/site-packages/pandas/core/base.py
from pandas.compat.numpy import function as nv
(snip...)
class IndexOpsMixin:
(snip...)
def transpose(self, *args, **kwargs):
"""
Return the transpose, which is by definition self.
Returns
-------
%(klass)s
"""
nv.validate_transpose(args, kwargs)
return self
T = property(
transpose,
doc="""
Return the transpose, which is by definition self.
""",
)
(snip...)
propertyの第一引数は属性値を取得するための関数です。
...うん、イマイチ自分の言葉に落とし込めないのですが、やりたいことはできたので、いつか理解できたらいいなと思っておきます。