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

如何为Pandas分组统计结果添加Total总计行

问题:为分组统计后的DataFrame添加总计行

我通过以下代码对两个DataFrame按Region分组统计Id列的非空值数量,并将结果合并为包含Here和There列的DataFrame:

import pandas as pd

df1 = pd.DataFrame({'Region': ['E', 'E', 'U', 'E'], 'Id': [1,None,None,None], 'Ids': [1,2,3,4]})
df2 = pd.DataFrame({'Region': ['E', 'U', 'U', 'E'], 'Id': [1,2,3,4], 'Ids': [1,2,3,4]})
x = df1.groupby(['Region']).count()
y = df2.groupby(['Region']).count()

c = pd.concat([x['Id'], y['Id']], axis=1, keys=['Here', 'There'])

当前得到的统计表格如下:

RegionHereThere
E12
U02

我希望为该表格添加索引为'Total'的行,分别计算Here列和There列的总计值,得到如下目标表格:

RegionHereThere
E12
U02
Total14

请问如何实现这一需求?


解决方案

这里提供三种简洁的实现方式:

方法1:使用pd.concat合并总计行(推荐)

先计算各列的总和生成单行DataFrame,再与原数据合并:

# 生成总计行,设置索引为'Total'
total_row = pd.DataFrame(c.sum()).T
total_row.index = ['Total']

# 合并原数据与总计行
result = pd.concat([c, total_row])

方法2:使用loc直接添加行

直接通过索引定位添加总计行:

# 为索引'Total'赋值各列总和
c.loc['Total'] = c.sum()

方法3:使用append(注意:pandas 2.0+已标记为过时)

# 将列总和以Series形式追加到原DataFrame
result = c.append(pd.Series(c.sum(), name='Total'))

执行任意一种方法后,即可得到包含总计行的目标表格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:55:13