我有一个熊猫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
您能建议一种选择这些行的优雅方法吗?
答案 0 :(得分:1)
如果f1
,f2
是列,请使用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')]
或者如果f1
,f2
是列名或MultiIndex
的级别:
df = df.query('f1 == f2')
print (df)
f1 f2 value
0 2 2 4
2 3 3 4
4 4 4 3