2017-08-22 78 views
1

我有熊貓一個數據幀,看起來像這樣:Python:如何刪除每個ID只有一個值的所有行?

ID  event 
1  2 
1  3 
2  2 
2  2 
3  2 
3  1 
3  5 
3  2 

我想刪除所有的行,這對於給定的ID在「事件」欄只有一個,相同的值。所以我的輸出應該是:

ID  event 
    1  2 
    1  3 
    3  2 
    3  1 
    3  5 
    3  2 

因爲只有ID = 2在事件列中具有相同的值。 我試着迭代ID,但它沒有給我提供足夠的結果。我知道解決方案在這裏應該很簡單,但是不能提出一個想法。

+0

是否有例如發生了什麼另一行'ID = 2'和'event = 3'?保持每一行'ID = 2'或放一個? – Quickbeam2k1

+0

然後它應該在輸出中,因爲有2個不同的事件,不僅僅是一個。 – JeffTheKiller

+0

嗯,我看到了,你已經得到了'ID = 3'的案件。 – Quickbeam2k1

回答

3

一個df.groupbydfGroupBy.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 
+0

它的工作原理,謝謝! – JeffTheKiller

相關問題