根据pandas数据框MultiIndex

时间:2020-04-09 08:01:24

标签: python pandas

我有一个熊猫DataFrame MultiIndex:

f1  f2  value
2   2   4
2   3   5
3   3   4
4   1   3
4   4   3

我想要一个输出,其中f1 == f2:

f1  f2  value
2   2   4
3   3   4
4   4   3

您能建议一种选择这些行的优雅方法吗?

1 个答案:

答案 0 :(得分:1)

如果f1f2是列,请使用boolean indexing

df = df[df.f1 == df.f2]
print (df)
   f1  f2  value
0   2   2      4
2   3   3      4
4   4   4      3

如果MultiIndex的级别为f1, f2,请使用Index.get_level_values

df = df[df.index.get_level_values('f1') == df.index.get_level_values('f2')]

或者如果f1f2是列名或MultiIndex的级别:

df = df.query('f1 == f2')
print (df)
   f1  f2  value
0   2   2      4
2   3   3      4
4   4   4      3