我有以下带有 MultiIndex(Z,A) 的 Pandas 数据框:
H1 H2
Z A
0 100 200 0.3112 -0.4197
1 100 201 0.2967 0.4893
2 100 202 0.3084 -0.4873
3 100 203 0.3069 NaN
4 101 203 -0.4956 NaN
问题:如何选择所有A=203的项目?
我尝试了 df[:,'A']
但它不起作用。然后我找到this在在线文档中,所以我尝试了:
df.xs(203,level='A')
但我得到:
“TypeError: xs() 得到了一个意外的关键字参数‘level’
”
我也没有在安装的文档中看到这个参数(df.xs?
):
"Parameters ---------- key : object 某些标签包含在索引中,或部分包含在 MultiIndex 轴中:int,默认 0 轴在副本上检索横截面:boolean,默认 True 是否制作资料副本”
注:我有开发版
编辑:我找到了 this thread .他们推荐这样的东西:
df.select(lambda x: x[1]==200, axis=0)
我还是想知道带level参数的df.xs发生了什么,或者当前版本推荐的方式是什么。
最佳答案
问题在于我假设(不正确)我使用的是开发版本,而实际上我使用的是 1.6.1,可以通过以下方式检查当前安装的版本:
import pandas
print pandas.__version__
在当前版本 df.xs()
中,使用 level 参数可以正常工作。
关于python - 从 MultiIndex 中选择特定级别的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175068/