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

如何为DataFrame创建Total行索引并计算各列求和?

给DataFrame添加总计行的解决方法

问题场景

现有如下结构的DataFrame:

com1     com2     com3
party1   10      0         0
party2   0       20       10 
party3   0       0        25

需要新增名为Total的行,计算每列的总和,最终效果如下:

com1     com2     com3
  party1   10      0         0
  party2   0       20       10 
  party3   0       0        25
Total     10       20       35

尝试使用apply函数时因Total行不存在报错,错误代码:

df_pivot = df_pivot.apply(lambda col: df_pivot.loc['Total', col].sum())

解决方案

方法一:直接赋值(修改原DataFrame)

通过loc直接给新行赋值列总和,这是最简洁的方式:

df_pivot.loc['Total'] = df_pivot.sum(axis=0)

sum(axis=0)表示按列计算总和,将结果直接赋值给Total行即可。

方法二:拼接新行(不修改原DataFrame)

如果需要保留原数据,可先创建总计行的DataFrame,再与原数据拼接:

import pandas as pd

# 生成总计行的DataFrame
total_row = pd.DataFrame(df_pivot.sum(axis=0)).T
total_row.index = ['Total']

# 拼接原数据和总计行
df_with_total = pd.concat([df_pivot, total_row])

错误原因说明

之前的代码逻辑颠倒:apply是对现有列/行执行计算,但你试图访问不存在的Total行来求和,自然会触发索引不存在的错误。正确逻辑是先计算现有列的总和,再将结果作为新行添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:59:56