gpt4 book ai didi

python - 如何过滤属于超过 1 个成员的组的所有行?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:17 24 4
gpt4 key购买 nike

我有一个与 this one 类似的问题.

我有一个这样的数据框:

import pandas as pd

df = pd.DataFrame({'A': list(range(7)),
'B': ['a', 'b', 'a', 'c', 'c', 'b', 'b'],
'C': ['x', 'x', 'x', 'z', 'z', 'y', 'x']}
)

A B C
0 0 a x
1 1 b x
2 2 a x
3 3 c z
4 4 c z
5 5 b y
6 6 b x

我想groupbyBC 然后从df 中选择所有有一个组的行尺寸大于 1。

想要的结果会是

   A  B  C
0 0 a x
1 1 b x
2 2 a x
3 3 c z
4 4 c z
6 6 b x

我能做到

gs_bool = df.groupby(['B', 'C']).size() > 1

给出

B  C
a x True
b x True
y False
c z True
dtype: bool

我现在如何将其反馈给 df

最佳答案

你真的很亲密-需要GroupBy.transform :

gs_bool = df.groupby(['B', 'C'])['B'].transform('size') > 1
print (gs_bool)
0 True
1 True
2 True
3 True
4 True
5 False
6 True
Name: B, dtype: bool

df = df[gs_bool]
print (df)
A B C
0 0 a x
1 1 b x
2 2 a x
3 3 c z
4 4 c z
6 6 b x

关于python - 如何过滤属于超过 1 个成员的组的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47308335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com