熊猫累积总和

时间:2020-08-30 23:12:14

标签: python pandas

我有一个看起来像这样的数据框:

project_code   start_date   end_date   date       spend
     489        5/15/18     5/15/19     3/1/19     100
     489        5/15/18     5/15/19     4/1/19     250
     489        5/15/18     5/15/19     5/1/19     50
     511        4/1/19      4/1/20      2/1/20     90
     511        4/1/19      4/1/20      3/1/20     50       
     489        5/15/19     5/15/20     3/1/20     100

我需要在同一张表中创建另一列,以计算该订阅期(由开始日期和结束日期定义)的累计支出。因此,只要它们的开始/结束日期相同,就应将所有以前的支出加到项目代码下。

project_code   start_date   end_date   date       spend    cumulative_subscription_spend
     489        5/15/18     5/15/19     3/1/19     100           100
     489        5/15/18     5/15/19     4/1/19     250           350
     489        5/15/18     5/15/19     5/1/19     50            400
     511        4/1/19      4/1/20      2/1/20     90            90
     511        4/1/19      4/1/20      3/1/20     50            140
     489        6/1/19      6/1/20      3/1/20     100           100

我见过的大多数此问题版本都使用groupby / aggregate,但是我很难弄清楚它如何用作同一表中的新列。

1 个答案:

答案 0 :(得分:1)

groupby + cumsum进行确认

df['cumulative_subscription_spend'] = df.groupby('project_code')['spend'].cumsum()