假设您有一个带有 MultiIndex 的 Panda DataFrame。您想要获取具有特定值标签的所有行。你是怎么做到的?
我的第一个想法是 bool 掩码...
df[df.index.labels == 1].head()
但这行不通。
谢谢!
请您参考如下方法:
我会使用 xs (cross-section) :
In [11]: df = pd.DataFrame([[1, 2, 3], [3, 4, 5]], columns=list("ABC")).set_index(["A", "B"])
In [12]: df
Out[12]:
C
A B
1 2 3
3 4 5
然后你可以取那些A级等于1的:
In [13]: df.xs(key=1, level="A")
Out[13]:
C
B
2 3
使用 drop_level=False 进行过滤(不删除 A 索引):
In [14]: df.xs(key=1, level="A", drop_level=False)
Out[14]:
C
A B
1 2 3
