2016-08-14 44 views
-1

我有這個簡單的數據幀如何刪除基於「水果」列中找到的多個值的所有行?

Num Fruit Price 
1  Apple 1.00 
1  Apple 1.00 
2  Apple 1.50 
2  Orange 1.50 
3  Orange 1.00 
3  Banana 0.50 

我想刪除所有這些都是水果AppleOrange

預期的輸出應該是這樣的行:

Num Fruit Price 
3 Banana 0.50 

我試着執行以下語法,但不知何故,它不會丟棄數據幀中的所有行

>>> df.drop(df.Fruit.isin(["Apple","Orange"])) 
Fruit Num Price 
2 Apple 2 1.50 
3 Orange 2 1.50 
4 Orange 3 1.00 
5 Banana 3 0.50 

任何建議如何解決這個問題?

回答

4

您需要傳遞要刪除的行的索引,但是您傳遞的是布爾數組。你可以把它改成:

df.drop(df[df.Fruit.isin(["Apple", "Orange"])].index) 
Out: 
    Num Fruit Price 
5 3 Banana 0.5 

或者你也可以選擇不包含蘋果或橘子行:

df[~(df.Fruit.isin(["Apple", "Orange"]))] 
Out: 
    Num Fruit Price 
5 3 Banana 0.5 
+0

你真棒! – MEhsan