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

如何基于布尔列筛选pandas dataframe中至少含一个True的行

实现方法

直接使用pandas内置的逐行判断逻辑即可,单句代码就能完成需求:

filtered_df = df[df.any(axis=1)]

原理说明

  • df.any(axis=1)会逐行遍历整个DataFrame,只要该行存在至少一个True值就返回True,全为False时返回False,最终得到一个和行数等长的布尔序列
  • 用这个布尔序列对原DataFrame做索引,就能自动过滤掉全为False的行,得到你需要的结果

特殊场景适配

如果你需要只判断部分列(比如你的DataFrame里除了布尔列还有其他类型的字段,不想让这些字段干扰判断),可以指定要判断的列范围:

# 示例:只判断col_1到col_100的列
filtered_df = df[df.loc[:, 'col_1':'col_100'].any(axis=1)]

这个方法是pandas原生向量化实现,没有额外的循环开销,哪怕是百万级行数、上百列的场景也能高效运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:15:02