每个人,我都有一个数据框,例如:
groups name
1 A
1 B
1 C
1 D
2 E
3 F
3 G
4 H
5 I
从那以后,我只想将数据组中单独存在的值保留在数据框中:
groups name
2 E
4 H
5 I
E,H和我分别在各自的组中。
我尝试过:
df[df.groupby(['groups']).count() == 1 ]
但这似乎不是解决方案。
答案 0 :(得分:2)
使用duplicated
:
df[~df.groups.duplicated(keep=False)]
groups name
4 2 E
7 4 H
8 5 I
或者,drop_duplicates
。
df.drop_duplicates('groups', keep=False)
groups name
4 2 E
7 4 H
8 5 I
答案 1 :(得分:1)
将GroupBy.transform
用于大小与原始DataFrame
相同的系列:
df[df.groupby(['groups'])['name'].transform('size') == 1 ]