SQLの分析でよく使うウィンドウ関数、その中の累系の再現です。
sum(col) over(order by sort_col rows between unbounded preceding and current row
みたいなやつです。
sort_colで並べて、そのカラムまでの累積を上では出しています。
Pandasの場合
df.col.cumsum()
で行けますが、その前にソートしておく必要があります。
また、sqlのignore nulls
の代わりとしてskipna = True
を渡すことで、nullを飛ばせます。
類似のもの
cummax
cummin
cumprod
が存在するようです。
partitionで区切る場合
一度groupby
する感じですね。
df.groupby('group カラム').col.cumsum()