熊猫定位多个条件

时间:2019-07-04 15:22:46

标签: pandas loc

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

我虽然下面的方法应该起作用,但事实并非如此。

任何人都可以看到问题

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

3 个答案:

答案 0 :(得分:4)

使用eq代替==

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

答案 1 :(得分:3)

您应该将两个命题分开:

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

答案 2 :(得分:3)

query

请注意,De Morgan's Law导致!=or

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