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

pandas中快速查询多列是否存在指定值的简便实现方法

pandas多列批量条件筛选的简化写法

你要的类切片筛选方式完全可以实现,推荐写法如下:

df1 = df[df.loc[:, 'Q25_1':'Q25_20'].eq('Earpods').all(axis=1)]

各部分逻辑说明:

  • df.loc[:, 'Q25_1':'Q25_20'] 实现了列的范围切片,选中从Q25_1到Q25_20的所有列,不需要逐个写列名
  • eq('Earpods') 会把选中范围内的所有元素和目标值Earpods做等值比较,返回布尔类型的DataFrame
  • all(axis=1) 按行做聚合判断,只有某一行所有列的比较结果都为True(即全部符合条件)时,才返回True,最终用这个布尔序列筛选原DataFrame得到结果

如果你的目标列不是按连续顺序排列,但命名符合统一规则(都是Q25_前缀加数字),可以用正则匹配筛选目标列,写法如下:

df1 = df[df.filter(regex=r'^Q25_\d+$').eq('Earpods').all(axis=1)]

如果你的需求是只要任意一列符合条件就保留行,把上述代码中的all(axis=1)替换为any(axis=1)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:54:04