gpt4 book ai didi

python - 在元素计数不等于 1 的组上过滤 DataFrame

转载 作者:行者123 更新时间:2023-12-03 00:01:45 25 4
gpt4 key购买 nike

我正在使用具有以下结构的 DataFrame:

import pandas as pd

df = pd.DataFrame({'group':[1,1,1,2,2,2,2,3,3,3],
'brand':['A','B','X','C','D','X','X','E','F','X']})

print(df)

group brand
0 1 A
1 1 B
2 1 X
3 2 C
4 2 D
5 2 X
6 2 X
7 3 E
8 3 F
9 3 X

我的目标是仅查看与恰好一个品牌 X 关联的群组。由于第 2 组有两个等于品牌 X 的观察值,因此应从生成的 DataFrame 中将其过滤掉。

输出应如下所示:

   group brand
0 1 A
1 1 B
2 1 X
3 3 E
4 3 F
5 3 X

我知道我应该在组列上执行groupby,然后过滤那些X计数不同于1的组。过滤部分是我遇到困难的地方。任何帮助,将不胜感激。

最佳答案

使用series.eq检查 brand 是否等于 X ,然后进行 groupby 和 transform sum 并过滤其中 的组X 计数等于 1:

df[df['brand'].eq('X').groupby(df['group']).transform('sum').eq(1)]
<小时/>
   group brand
0 1 A
1 1 B
2 1 X
7 3 E
8 3 F
9 3 X

关于python - 在元素计数不等于 1 的组上过滤 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59768259/

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