查询多索引熊猫数据框

迈克尔·多纳

对于给定的数据帧,df例如

df = pd.DataFrame({'last_name': ['Clinton', 'Clinton', 'Bush', 'Bush', 'Obama'], 'first_name': ['Bill', 'Hillary', 'George Herbert Walker', 'George Walker', 'Barack']}).set_index(['last_name', 'first_name'])

我无法查询数据框,例如

df.loc['last_name', :] ... # or
df.xs('last_name') ...

因为它失败(KeyError: 'last_name')。我认为它应该按照本博文中有关MultiIndex的简单用法演示的描述进行工作

我想念什么?

斯科特·波士顿

以下是一些选择:

使用查询(由于列命名限制而不太灵活):

df.query('last_name == "Clinton"')

将.loc与轴参数一起使用:

df.loc(axis=0)["Clinton",:]

使用.xs返回数据帧的一部分

df.xs('Clinton')

将get_level_values与布尔索引一起使用:

df[df.index.get_level_values(0) == "Clinton"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章