我正在努力根据多个条件过滤数据框结果集,希望您能对以下案例提供帮助。
在下面的示例中,我想根据数据框中的两个条件进行过滤:
在代码中,我使用以下逻辑通过“filt”变量过滤结果:
filt = (df["Condition 1"] )== 1 & (df["Condition 2"] == 0)
不幸的是,双条件过滤器没有产生预期的结果。实际上,输出中既不满足条件 1 也不满足条件 2。
print(df.loc[filt, "Condition 3"])
另一种可行但我想避免的方法是创建第三个条件,其中 “条件 1” - “条件 2” = 1 并以此为基础设置过滤器。这将如下所示:
filt2 = df["Condition 3"] == 1
print(df.loc[filt2, "Condition 3"])
请注意,在这种情况下,过滤器(“filt2”)中只有一个条件最终会产生预期的结果。
我的问题是:
PS:下面关于“filt”的代码也会产生预期的结果。
filt = df["Condition 1"] - df["Condition 2"] == 1
答案 0 :(得分:0)
你应该像这样过滤:
filt = df[(df["Condition 1"] == 1) & (df["Condition 2"] == 0)]
过滤数据框将包含所需的结果