MEh*_*san 0 python dataframe pandas
我有这个简单的数据帧
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
Run Code Online (Sandbox Code Playgroud)
我想删除所有这些都是水果中的行Apple或Orange
预期的输出应该是这样的:
Num Fruit Price
3 Banana 0.50
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下语法,但不知何故它没有删除数据帧中的所有行
>>> 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
Run Code Online (Sandbox Code Playgroud)
有什么建议如何解决这个问题?
您需要传递要删除的行的索引,但是您传递的是布尔数组.您可以将其更改为:
df.drop(df[df.Fruit.isin(["Apple", "Orange"])].index)
Out:
Num Fruit Price
5 3 Banana 0.5
Run Code Online (Sandbox Code Playgroud)
或者您可以选择不包含苹果或橙色的行:
df[~(df.Fruit.isin(["Apple", "Orange"]))]
Out:
Num Fruit Price
5 3 Banana 0.5
Run Code Online (Sandbox Code Playgroud)