Cumulative sum and percentage on column?

df['cum_sum'] = df['val1'].cumsum()
df['cum_perc'] = 100*df['cum_sum']/df['val1'].sum()

This will add the columns to df. If you want a copy, copy df first and then do these operations on the copy.


It's a good answer, but written in 2014. I just modified a little bit, so it can pass the compiler and results looks similar to the example.

df['cum_sum'] = df["val1"].cumsum()
df['cum_perc'] = round(100*df.cum_sum/df["val1"].sum(),2)