Python:如何删除每个ID只有一个值的所有行?

时间:2017-08-22 09:00:49

标签: python pandas dataframe

我在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,但它没有给我相应的结果。我知道解决方案在这里应该很简单,但不能提出一个想法。

1 个答案:

答案 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