python - 在元素计数不同于 1 的组上过滤 DataFrame
问题描述
我正在使用具有以下结构的 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
and 过滤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 - 动态变化的小部件
- python - 在回调期间为多个输入/状态重命名破折号菜单属性
- javascript - 在 URL 中添加一个变量而不是替换一个
- typescript - 将数组值提取为 Typescript 类型
- javascript - 使用 vue.js,如何将活动标记设置为当前活动路径?
- python-2.7 - Windows搜索可以存在于多个子文件夹中的可执行文件,然后运行每个实例,必须是python 2.7
- sas - SAS 连接到 SQL Server dsn less
- maven - 为什么我会收到此 NoClassDefFound 错误?
- conditional-formatting - webi Rich Client 4.1中多个值的条件格式
- arrays - 仅对二维数组的第一维进行排序 Google Script