タプルも使用されていますMultiIndexを使用してDataFrameから列を選択するには:
import pandas as pd
columns = pd.MultiIndex.from_arrays([['a','b','c'], ['X','Y','Z']])
df = pd.DataFrame([[2,3,4],[3,4,5]], columns=columns)
# a b c
# X Y Z
# 0 2 3 4
# 1 3 4 5
次いでタプルの
In [203]: df[('a','X')]
Out[203]:
0 2
1 3
Name: (a, X), dtype: int64
リストは、各タプルは、一つの列を指定すると、複数の列を選択する:
In [204]: df[[('a','X'), ('b','Y')]]
Out[204]:
a b
X Y
0 2 3
1 3 4
DataFrame.__getitem__
は、この動作を生成するためにチェックを入力使用:
# lists are handled here ----------------------vvvv
if isinstance(key, (Series, np.ndarray, Index, list)):
# either boolean or fancy integer index
return self._getitem_array(key)
elif isinstance(key, DataFrame):
return self._getitem_frame(key)
# tuples are handled here when self has a MultiIndex
elif is_mi_columns:
return self._getitem_multilevel(key)
# or else here
else:
return self._getitem_column(key)