为什么具有多种条件的过滤不起作用



我需要根据两个条件过滤我的DataFrame。我需要过滤掉cause='fire'AND flag=1的任何观察结果。它可以是火,flag=0。它可以是flag=1和cause!='火灾。只是不是两者同时出现。

我尝试了以下方法:

df.loc[(df['flag'] != 1) & (df['cause'] != 'Fire')]

但这消除了所有的1和/或火。我需要满足这两个条件才能被过滤掉。不确定我哪里错了。

使用您定义的内容构建了一个DF。确保你的逻辑编码。您声明NOT(cause=="Fire"AND flag==1(

import random
c = ["Fire","Water"]
df = pd.DataFrame({"flag":[random.randint(0,1) for r in range(10)], "cause":[c[random.randint(0,1)] for r in range(10)]})
df.loc[~((df['flag'] == 1) & (df['cause'] == 'Fire'))]

最新更新