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

如何筛选DataFrame中True值数量超过1的行?

筛选DataFrame中True值数量超过1的行

没问题,这事儿其实很简单,我给你两种实用的方法,根据你的具体情况选就行:

方法1:针对已知的布尔列

如果你明确知道哪些列是布尔类型(比如例子里的B、C、D),直接指定这些列然后按行求和就行——因为在Python里True等价于1,False等价于0,求和结果就是每行的True数量。

代码示例:

# 指定需要检查的布尔列
target_cols = ['B', 'C', 'D']
# 筛选出True数量>1的行
filtered_df = df[df[target_cols].sum(axis=1) > 1]

方法2:自动识别所有布尔列

如果你的DataFrame里有很多布尔列,或者不确定具体是哪些列,可以用select_dtypes自动筛选出所有布尔类型的列,再进行求和筛选:

# 自动获取所有布尔类型的列
bool_cols = df.select_dtypes(include='bool').columns
# 筛选True数量超过1的行
filtered_df = df[df[bool_cols].sum(axis=1) > 1]

额外说明:如果布尔值是字符串格式

要是你的DataFrame里的"True"/"False"是字符串类型(不是原生布尔值),得先把这些列转换成布尔类型再筛选:

target_cols = ['B', 'C', 'D']
# 转换列类型
df[target_cols] = df[target_cols].astype(bool)
# 再执行筛选
filtered_df = df[df[target_cols].sum(axis=1) > 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 15:57:37