>>> df['Q_cum'] = df.groupby('D').cumsum()>>> df D Q Q_cum0 2015 0 01 2015 1 12 2015 2 33 2015 3 64 2016 4 45 2016 5 96 2016 6 157 2017 7 78 2017 8 159 2017 9 24
As @Ayhan said, If you want to cumsum
on a specific column (like Q here) df.groupby('D')['Q'].cumsum()