My question is very similar to Cumsum within group and reset on condition in pandas and Pandas: cumsum per category based on additional condition but they don\'t quite get m
Use 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