例如,我有一个 DataFrame,foo
如下所示。还有一个 MultiIndex DataFrame,其索引级别对应于 的前两列foo
,例如,foo_multi
下面。我想切片,foo
以便我只获得与 .csv 的索引匹配的列值的结果foo_multi
。
foo = pd.DataFrame({'bar':[1,2,3,4,5,3,8,4,4,5],
'baz':['a','b','c','d','d','d','d','b','a','a'],
'qux':['z','x','c','x','z','z','x','c','c','c']})
foo_multi = foo.groupby(['bar', 'baz']).size().nlargest(3)
>>> foo
bar baz qux
0 1 a z
1 2 b x
2 3 c c
3 4 d x
4 5 d z
5 3 d z
6 8 d x
7 4 b c
8 4 a c
9 5 a c
>>> foo_multi
bar baz
1 a 1
2 b 1
3 c 1
dtype: int64
所以我正在寻找一种方法,只使用foo
并且foo_multi
会返回
bar baz qux
0 1 a z
1 2 b x
2 3 c c
使用合并来过滤记录:
foo.merge(foo_multi.to_frame(), left_on=['bar','baz'], right_index=True).drop(0, axis=1)
输出:
bar baz qux
0 1 a z
1 2 b x
2 3 c c
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句