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

如何用数量可变的列条件自动过滤Pandas DataFrame?

自动化实现Pandas DataFrame多列过滤(适配Pandas 1.0.3)

可以完全自动化实现,无需手动逐个指定列名,用Pandas内置的eq()和any()方法即可解决,代码如下:

filters = ['col_43', 'col_44', 'col_45', ...]
# 生成过滤掩码:每行任意指定列等于'Y'
mask = df[filters].eq('Y').any(axis=1)
filtered_df = df[mask]

逻辑说明

  • df[filters]:直接选中列表中所有指定列,自动适配列表长度变化
  • .eq('Y'):对选中的每一列逐行判断是否等于'Y',返回布尔类型的DataFrame
  • .any(axis=1):按行检查是否至少有一个列满足等于'Y'的条件,最终生成一维布尔序列作为过滤规则

如果你的需求是**所有指定列都等于'Y'**才保留行,只需把any()换成all():

mask = df[filters].eq('Y').all(axis=1)
filtered_df = df[mask]

该方案完全兼容Pandas 1.0.3版本,不管filters列表包含多少列,都能自动处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:12:04