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"')
我有一个数据框,我想删除 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"')