如何筛选DataFrame:指定列满足条件且其余列全为False
解决DataFrame多条件筛选问题
需求拆解
你需要筛选同时满足以下条件的行:
- A列值为
True - B列或 C列值为
True - D、E、F列的值全部为
False
实现代码
方法1:使用loc索引
利用布尔数组组合条件,其中~df[['D','E','F']].any(axis=1)用于判断D、E、F中无任何一个为True(即全为False):
df.loc[ df.A & (df.B | df.C) & ~df[['D', 'E', 'F']].any(axis=1) ]
方法2:使用query方法
直接用类SQL的查询语句补充全列判断条件:
df.query('A and (B or C) and not (D or E or F)')
最终结果
执行上述代码后,会得到你期望的筛选结果:
A | B | C | D | E | F True True False False False False True True True False False False
内容的提问来源于stack exchange,提问作者L F
相关产品推荐
相关产品推荐

