3

我有一个数据框,我想删除 A 列等于蓝色且 B 列等于绿色的所有行。

我虽然下面应该工作,但事实并非如此。

任何人都可以看到问题

df=df.loc[~(df['A']=='blue' & df['B']=='green')]
4

3 回答 3

7

使用eq而不是==

df.loc[~(df['A'].eq('blue') & df['B'].eq('green'))]
于 2019-07-04T15:32:29.270 回答
7

您应该将两个命题分开:

df1=df.loc[~(df['A']=='blue') & ~(df['B']=='green')]
于 2019-07-04T15:37:37.980 回答
3

query

注意!=or作为德摩根定律的结果

df.query('A != "blue" or B != "green"')
于 2019-07-04T15:51:45.640 回答