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

Pandas:统计多列0/1数据并生成各列占比的方法

计算布尔值DataFrame的列占比

你的DataFrame所有列都是0/1值,要计算每列1的占比(即对应元素出现在剧集中的比例),用pandas可以轻松实现,以下是两种可靠方法:

方法一:直接利用均值计算

因为0/1列的均值恰好等于1的数量占总行数的比例,代码简洁高效:

import pandas as pd

# 假设你的DataFrame名为df
# 计算每列占比,返回Series对象
column_ratios = df.mean()

# 可选:格式化为百分比并保留两位小数
formatted_ratios = (column_ratios * 100).round(2).astype(str) + "%"

方法二:明确基于总剧集数381计算

如果需要强制以381作为分母(比如存在缺失值但仍要按总剧集数统计),可以先统计每列1的数量再做除法:

# 统计每列1的总数
column_yes_counts = df.sum()

# 计算占比
column_ratios = column_yes_counts / 381

# 同样可以格式化输出
formatted_ratios = (column_ratios * 100).round(2).astype(str) + "%"

结果整理

如果需要更清晰的表格形式,可以将结果转为DataFrame:

result_table = formatted_ratios.reset_index()
result_table.columns = ["元素名称", "剧集包含占比"]
print(result_table)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:35:33