You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效实现Pandas DataFrame多列多条件数据筛选?

Pandas 多条件筛选简化实现

你可以通过布尔掩码配合pandas内置的行列判断方法大幅简化写法,性能也优于原有多次取子集的实现:

# 拆分条件逻辑,可读性更强
cond1 = df[['A Code', 'B Code']].eq('123').any(axis=1) # A/B列任意一列为123
cond2 = df[['X Code', 'Y Code']].eq('765').any(axis=1) # X/Y列任意一列为765
cond3 = df['H Code'].isin(['EF', 'GH']) # H列属于指定值列表

# 组合条件筛选
result = df[(cond1 & cond2) | cond3]

如果偏好更紧凑的写法也可以直接合并条件:

result = df[((df[['A Code','B Code']].eq('123').any(1)) & (df[['X Code','Y Code']].eq('765').any(1))) | df['H Code'].isin(['EF','GH'])]

写法优势说明

  • 原有写法多次对DataFrame取子集后做逻辑运算,存在冗余的索引对齐开销,直接生成布尔掩码的方式执行效率更高
  • 用eq()+any(axis=1)替代多列重复的相等判断,当需要判断的列数增加时优势更明显
  • 用isin()替代多值的或判断,避免重复写==的冗余代码

内容的提问来源于stack exchange,提问作者be84

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:51:03