Pandas dataframe - running sum with reset Pandas dataframe - running sum with reset python python

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