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

按年份分组计算power_kwh列的cumsum(累计求和)问题

问题分析与解决方案

错误原因

你之前的代码testdf['results'] = testdf.groupby(['year','month'])['power_kwh'].cumsum()同时按year和month分组,这意味着每个分组是单一年份+单一月份的独立集合。每个分组内只有对应月份的数据,cumsum()自然只会返回原列值,无法实现年内跨月份的累计求和。

正确解决方案

场景1:每个年份-月份组合仅一条数据

先确保数据按年份和月份排序(保证累计顺序符合时间逻辑),再仅按year分组计算累计求和:

# 按年份、月份排序,确保累计顺序正确
testdf = testdf.sort_values(by=['year', 'month'])
# 仅按year分组,计算年内累计用电量
testdf['cumsum_power_kwh'] = testdf.groupby(['year'])['power_kwh'].cumsum()

场景2:同一个年份-月份有多条数据

如果同一月份有多条power_kwh记录,需要先按月聚合求和,再计算年内累计:

# 第一步:按年份、月份分组,计算每月总用电量
monthly_summary = testdf.groupby(['year', 'month'])['power_kwh'].sum().reset_index()
# 第二步:按年份排序后,计算年内累计
monthly_summary['cumsum_power_kwh'] = monthly_summary.groupby(['year'])['power_kwh'].cumsum()
# 可选:将累计结果合并回原DataFrame
testdf = testdf.merge(monthly_summary[['year', 'month', 'cumsum_power_kwh']], on=['year', 'month'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:15:32