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

如何用Pandas计算分组求和后的相对百分比?

解决DataFrame分组求和及占比计算问题

直接上可运行的代码方案,针对需求一步到位:

import pandas as pd

# 你的示例数据
df = pd.DataFrame({
    'Company': ['Company1', 'Company2', 'Company3', 'Company1', 'Company3'],
    'STC Watts': [10.10, 9.6, 13.3, 5.6, 10.12]
    # 其他列无需改动,保留原结构即可
})

# 第一步:计算整个数据集的STC Watts总数值
total_stc = df['STC Watts'].sum()

# 第二步:按Company分组求和,同时计算占比
# 分组求和后重置索引,把分组字段变回普通列
grouped_result = df.groupby('Company')['STC Watts'].sum().reset_index()
# 新增百分比列,保留两位小数提升可读性
grouped_result['STC Percentage (%)'] = (grouped_result['STC Watts'] / total_stc * 100).round(2)

# 输出结果
print(grouped_result)

运行后会得到如下结果:

Company  STC Watts  STC Percentage (%)
0  Company1       15.70                28.62
1  Company2        9.60                17.49
2  Company3       23.42                43.89

关键说明

  • 全局总和total_stc必须在分组前计算,确保是整个数据集的总和,而非分组内的局部总和,这是常见的踩坑点。
  • 使用reset_index()是为了把分组后的Company从索引变回普通列,方便后续新增百分比列的操作。
  • 如果需要更精准的百分比,可以调整round()里的参数,比如保留4位小数就写round(4)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:39:58