我的问题与Cumsum within group and reset on condition in pandas和Pandas: 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/