我在pandas中有一个数据框,如下所示:
ID event
1 2
1 3
2 2
2 2
3 2
3 1
3 5
3 2
我想删除所有行,对于给定ID,只有一个,相同的值在' event'柱。所以我的输出应该是:
ID event
1 2
1 3
3 2
3 1
3 5
3 2
因为只有ID = 2在事件列中具有相同的值。 我尝试迭代ID,但它没有给我相应的结果。我知道解决方案在这里应该很简单,但不能提出一个想法。
答案 0 :(得分:3)
df.groupby
dfGroupBy.transform
应该执行此操作:
In [1471]: df[df.groupby('ID')['event'].transform(lambda x: x.nunique() > 1)]
Out[1471]:
ID event
0 1 2
1 1 3
4 3 2
5 3 1
6 3 5
7 3 2