Pandas loc 多个条件

Pandas loc multiple conditions

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

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

谁能看出问题所在

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

使用eq代替==

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

你应该把两个命题分开:

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

query

请注意 !=or 作为 De Morgan's Law

的结果
df.query('A != "blue" or B != "green"')