Pandas dataframe - running sum with reset
You can use 2 times cumsum()
:
# reset val desired_col#0 0 1 1#1 0 5 6#2 0 4 10#3 1 2 2#4 1 -1 -1#5 0 6 5#6 0 4 9#7 1 2 2df['cumsum'] = df['reset'].cumsum()#cumulative sums of groups to column desdf['des']= df.groupby(['cumsum'])['val'].cumsum()print df# reset val desired_col cumsum des#0 0 1 1 0 1#1 0 5 6 0 6#2 0 4 10 0 10#3 1 2 2 1 2#4 1 -1 -1 2 -1#5 0 6 5 2 5#6 0 4 9 2 9#7 1 2 2 3 2#remove columns desired_col and cumsumdf = df.drop(['desired_col', 'cumsum'], axis=1)print df# reset val des#0 0 1 1#1 0 5 6#2 0 4 10#3 1 2 2#4 1 -1 -1#5 0 6 5#6 0 4 9#7 1 2 2