我的问题与Cumsum within group and reset on condition in pandasPandas: cumsum per category based on additional condition非常相似,但由于我的条件要求,它们并不能使我到那里。我有一个看起来像这样的数据框:

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

我想创建另一个列“累积”,该列为每个TransactionId计算Delta的总和。因此结果将如下所示:
  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值添加到上一个“累积行”中。

最佳答案

使用 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

关于python - 根据 Pandas 中的条件重置总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53079313/

10-12 16:33