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

Pandas未知列名时如何筛选至少一列含指定值的行

解决方案

你可以直接用pandas内置的any方法实现需求,不需要提前知道所有列名,以下是两种适配不同场景的实现方式:

方法1:排除指定非判断列后筛选

如果只有ID列不需要参与是否为True的判断,先删除该列后逐行判断即可:

df[df.drop('ID', axis=1).any(axis=1)]

方法2:自动筛选所有布尔列参与判断

如果不清楚哪些列是需要判断的布尔列,可以自动匹配所有布尔类型的列做判断,完全不需要关心列名:

df[df.select_dtypes(include='bool').any(axis=1)]

原理解释

  • any(axis=1) 会逐行扫描输入的DataFrame,只要该行存在任意一个True值就返回True,全为False则返回False,生成的布尔序列可以直接作为行筛选的索引掩码。
  • 两种方法都不需要手动罗列所有需要判断的列名,适配列数多、列名未知的场景,运行后都会得到你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:08