繁体   English   中英

如何根据pandas数据框中的多列值条件排除行?

[英]How to exclude rows based on multi column value conditions in pandas dataframe?

下面是熊猫数据框广告:

email             score
a@domain.com      A
b@domain.com      A
c@domain.com      C
d@domain.com      B

我想排除带有email a@domain.comc@domain.com行。预期结果如下:

email            score
b@domain.com      A
d@domain.com      B

我尝试了 3 次但失败了:

df=df[df.email !='a@domain.com' & df.email !='c@domain.com' ]
TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]


df=df[df.email !='a@domain.com' && df.email !='c@domain.com' ]
SyntaxError: invalid syntax


df=df[df.email !='a@domain.com' | 'c@domain.com' ]
TypeError: unsupported operand type(s) for |: 'str' and 'str'

有什么问题?

你必须用括号括起来:

df = df[(df.email != 'a@domain.com') & (df.email != 'c@domain.com')]

也就是说,使用isin会更容易:

df = df[~df.email.isin(['a@domain.com', 'c@domain.com'])]

现在:

print(df)

将是预期的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM