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

如何统计DataFrame中所有列值均为1的行数?

解决方案

假设你使用的是Python的pandas库,以下是几种简洁高效的实现方式:

方法一:all() + sum()组合(推荐)

这是处理这类需求最直接的方式,通过逐行校验所有列值是否为1,再统计符合条件的行数:

import pandas as pd

# 构建示例DataFrame
data = {
    "name": [1, 1, 1, 1],
    "gender": [1, 0, 1, 1],
    "address": [1, 0, 1, 0],
    "phone no.": [1, 0, 1, 1]
}
df = pd.DataFrame(data)

# 统计所有列均为1的行数
match_count = (df == 1).all(axis=1).sum()
print(match_count)  # 输出:2

代码说明

  • df == 1:生成与原DataFrame结构一致的布尔型DataFrame,每个位置标记原数值是否等于1
  • .all(axis=1):按行校验,仅当该行所有列都为True时返回True
  • .sum():布尔值中True等价于1、False等价于0,求和后即为符合条件的行数

方法二:逐行遍历(仅小数据量适用)

如果需要更直观的逐行判断逻辑,可以用循环实现,但大数据量下效率远低于第一种方法:

match_count = 0
for _, row in df.iterrows():
    if (row == 1).all():
        match_count += 1
print(match_count)  # 输出:2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:30:53