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

如何为Pandas DataFrame生成commits列的累计求和列Commit_growth?

问题解决:计算DataFrame中commits列的累计总和

问题背景

原始DataFrame结构:

info_version  commits commitdates
18558       17.1.3       42  2017-07-14
20783       17.1.3       57  2017-07-14
20782       17.2.2       57  2017-09-27
18557       17.2.2       42  2017-09-27
18556       17.2.3       42  2017-10-30
20781       17.2.3       57  2017-10-30
20780       17.2.4       57  2017-11-27
18555       17.2.4       42  2017-11-27
20779       17.2.5       57  2018-01-10

需求:计算commits列从第一行到当前行的累计总和,生成名为Commit_growth的列,期望输出如下:

info_version  commits commitdates    Commit_growth
18558       17.1.3       42  2017-07-14       42
20783       17.1.3       57  2017-07-14       109
20782       17.2.2       57  2017-09-27       166
18557       17.2.2       42  2017-09-27      208
18556       17.2.3       42  2017-10-30       250
20781       17.2.3       57  2017-10-30       307
20780       17.2.4       57  2017-11-27       364
18555       17.2.4       42  2017-11-27      406
20779       17.2.5       57  2018-01-10       463

用户尝试的代码仅能得到commits列的整体总和,无法实现累计求和:

data2 = data1[['info_version', 'commits', 'commitdates']].sort_values(by='info_version', ascending=True)
sum_row = data2.sum(axis=0)

解决方案

Pandas的cumsum()方法专门用于计算累计求和,直接对commits列调用该方法即可生成目标列。

完整代码:

# 按info_version排序(保持需求中的顺序)
data2 = data1[['info_version', 'commits', 'commitdates']].sort_values(by='info_version', ascending=True)
# 生成累计求和列
data2['Commit_growth'] = data2['commits'].cumsum()

说明

  • cumsum()会从第一行开始,依次计算到当前行的累加值,完全匹配需求。
  • 执行后data2将包含期望的Commit_growth列,结果与示例一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:00:56