df = pd.DataFrame({
'A': ['a', 'b', 'c'],
'B': ['x', 'y', 'z'],
'C': [1, 2, 3],
}).set_index(['A', 'B'])
# C
# A B
# - - -
# a x 1
# b y 2
# c z 3
これからインデックス A='b' and B='y'
の値を取り出す方法:
df.loc[[('b', 'y')]]
# C
# A B
# - - -
# b y 2
.loc[[インデックス]]
と指定することで、該当行が取れる。
インデックスが複数列の場合は ('b', 'y')
のようにタプルで指定することになる。
ちなみに .loc[[インデックス1, インデックス2, ...]]
のようにカンマ区切りで指定すれば行を複数取れる。
例
df.loc[[('a', 'x'), ('b', 'y')]]
# C
# A B
# - - -
# a x 1
# b y 2