我有多索引数据框,如下所示:
value
year name
1921 Ah 40
1921 Ai 90
1922 Ah 100
1922 Ai 7
其中year
and name
是指数。我想选择名称所在的每一行Ai
出现。我努力了df.loc[(:,'Ai')]
and df.loc['Ai']
但两者都给出错误。如何仅使用名称列建立索引?
@sacul 有最惯用的答案,但这里有一些替代方案。
MultiIndex.get_level_values
df[df.index.get_level_values('name') == 'Ai']
value
year name
1921 Ai 90
1922 Ai 7
DataFrame.query
df.query('name == "Ai"')
value
year name
1921 Ai 90
1922 Ai 7
DataFrame.loc(axis=0)
with pd.IndexSlice
与@liliscent的答案类似,但不需要尾随:
如果你指定axis=0
.
df.loc(axis=0)[pd.IndexSlice[:, 'Ai']]
value
year name
1921 Ai 90
1922 Ai 7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)