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

如何用Pandas Groupby生成含计数与百分比的多列统计结果?

解决方法

你可以通过以下两种方式修改代码,同时得到Frequency列、计数列和百分比计数列:

方法一:分步统计实现

import pandas as pd

# 读取输入文件
df = pd.read_csv('testPCI.csv')

# 按Frequency分组统计PCI的计数,将索引转为普通列并重命名计数列
group_result = df.groupby(['Frequency'])['PCI'].count().reset_index(name='计数')

# 计算每组的百分比:用每组计数除以总数据量,乘以100后保留两位小数
total_rows = len(df)
group_result['百分比(%)'] = (group_result['计数'] / total_rows * 100).round(2)

# 输出到Excel,不导出默认行索引
group_result.to_excel("output.xlsx", index=False)

方法二:用agg一次性完成统计

如果想让代码更简洁,可直接使用agg方法同时指定两个统计项:

import pandas as pd

df = pd.read_csv('testPCI.csv')
total_rows = len(df)

# 分组后同时计算计数和百分比
group_result = df.groupby(['Frequency'])['PCI'].agg(
    计数='count',
    百分比=(lambda x: round(len(x)/total_rows * 100, 2))
).reset_index()

group_result.to_excel("output.xlsx", index=False)

关键说明

  • reset_index():把groupby后作为索引的Frequency转回普通列,确保输出包含该列。
  • 百分比计算:基于总数据量计算每组占比,round(2)可根据需求调整小数位数。
  • index=False:避免Excel中多出一列默认的行索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:44:57