我有一个看起来像这样的数据框:
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,但是我很难弄清楚它如何用作同一表中的新列。
答案 0 :(得分:1)
用groupby
+ cumsum
进行确认
df['cumulative_subscription_spend'] = df.groupby('project_code')['spend'].cumsum()