根据 Pandas 中的条件重置 Cumsum

Cumsum Reset based on a condition in Pandas

我的问题与 Cumsum within group and reset on condition in pandas and 非常相似,但由于我的条件要求,他们并没有完全解决我的问题。我有一个如下所示的数据框:

  TransactionId     Delta
          14          2
          14          3
          14          1
          14          2
          15          4
          15          2
          15          3

我想创建另一个列 "Cumulative" 来计算每个 TransactionId 的增量总和。所以结果看起来像这样:

  TransactionId     Delta    Cumulative
          14          2          2
          14          3          5
          14          1          6
          14          2          8
          15          4          4
          15          2          6
          15          3          9

我有检查 TransactionId 相等性设置的条件:

c1 = df.TransactionId.eq(df.TransactionId.shift())

但我不知道如何将 Delta 值添加到上一个 Cumulative 行。

使用groupby.cumsum

df['Cumulative'] = df.groupby('TransactionId')['Delta'].cumsum()

print (df)

  TransactionId  Delta  Cumulative
0       14         2       2
1       14         3       5
2       14         1       6
3       14         2       8
4       15         4       4 
5       15         2       6 
6       15         3       9