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

如何在Pandas中计算行百分比?含数据示例与预期结果

计算数据框指定周各列的百分比

原始数据

Week    1  2 a 4   5  6 a 9  10  10+
3       2      2   1      0   0    0
4      44     68  18     33   4   27
5     198    313  70    142  20  259

需求

计算第5周各列数值在所有行(周3、周4、周5)对应列总和中的占比,输出百分比格式的结果。

预期结果

Week    1  2 a 4   5  6 a 9  10  10+
5.    20%    31%  7%    14%  2%  26%

实现方法(Python pandas)

import pandas as pd

# 构建原始数据框
data = {
    'Week': [3, 4, 5],
    '1': [2, 44, 198],
    '2 a 4': [2, 68, 313],
    '5': [1, 18, 70],
    '6 a 9': [0, 33, 142],
    '10': [0, 4, 20],
    '10+': [0, 27, 259]
}
df = pd.DataFrame(data)

# 计算各列总和(排除Week列)
col_totals = df.drop('Week', axis=1).sum()

# 提取第5周数据,计算百分比并格式化
week5_row = df[df['Week'] == 5].drop('Week', axis=1).iloc[0]
week5_percent = (week5_row / col_totals * 100).round().astype(int).astype(str) + '%'

# 整理结果格式
result_df = pd.DataFrame([week5_percent.values], columns=week5_percent.index)
result_df.insert(0, 'Week', '5.')
print(result_df.to_string(index=False))

逻辑说明

  1. 将原始数据转为pandas数据框,便于批量计算
  2. 计算每一列的总和(周3、4、5的数值相加)
  3. 提取第5周的各列数值,分别除以对应列的总和,乘以100后取整,拼接百分号
  4. 重新整理输出格式,与预期结果对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:22:27