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

如何新增列并按指定列分组?及分组求和的Pandas实操疑问

解决Pandas分组求和的问题

嘿,我来帮你搞定这个分组求和的小问题!你之前的代码之所以没得到预期结果,还出现了奇怪的额外列,核心原因是分组的列指定错了——你把Paid和Week都放进groupby()里了,这会让Pandas按「Paid值+Week值」的组合来分组,而不是你想要的只按Week分组。

正确的实现步骤

我们拿你给出的示例DataFrame来演示:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'Paid': [5, 2, 7, 7],
    'Week': [1, 1, 2, 2]
})

要实现「按Week分组,计算Paid的总和」,只需要两步:

  1. 仅按Week列分组,同时指定要聚合的目标列是Paid
  2. 重置索引,让Week从分组索引变回普通列(保证输出格式和你期望的一致)

对应的代码如下:

# 分组求和并重置索引
result = df.groupby('Week')['Paid'].sum().reset_index()

# 调整列的顺序(和你的期望输出一致,可选)
result = result[['Paid', 'Week']]

print(result)

运行结果

Paid  Week
0     7     1
1    14     2

为什么之前的代码出错?

你之前写的df.groupby(['Paid','Week']).sum()会对**每一组(Paid值, Week值)**进行求和,而且会自动对所有数值列执行聚合操作——如果你的原始DataFrame里还有其他隐藏的数值列,就会出现那些奇怪的额外输出。而我们指定groupby('Week')['Paid']后,只会对Paid列按Week分组求和,完全避免了多余列的干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:53:25