Skip to main content
 首页 » 编程设计

python之Pandas MultiIndex 获取所有具有标签值的行

2025年05月04日25tuyile006

假设您有一个带有 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