sfa*_*tor 4 python cumulative-sum pandas
我试图从熊猫数据框计算一些统计数据.它看起来像这样:
id value conditional
1 10 0
2 20 0
3 30 1
1 15 1
3 5 0
1 10 1
Run Code Online (Sandbox Code Playgroud)
因此,我需要计算value每个id从顶部到botom 的列的累积总和,但仅在conditional为1时.
所以,这应该给我一些像:
id value conditional cumulative sum
1 10 0 0
2 20 0 0
3 30 1 30
1 15 1 15
3 5 0 30
1 10 1 25
Run Code Online (Sandbox Code Playgroud)
因此,id=1仅conditional=1在第4行和第6行中采用总和,并且不计算第1行值.我怎么在熊猫里这样做?
您可以创建一个系列,它是和的乘法,value并conditional为每个id组获取它的累积总和:
df['cumsum'] = (df['value']*df['conditional']).groupby(df['id']).cumsum()
df
Out:
id value conditional cumsum
0 1 10 0 0
1 2 20 0 0
2 3 30 1 30
3 1 15 1 15
4 3 5 0 30
5 1 10 1 25
Run Code Online (Sandbox Code Playgroud)