根据 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 行。
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
我的问题与 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 行。
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