首页 > 解决方案 > Pandas cumsum 来自每组的第二个元素

问题描述

我有一个如下所示的数据框。最右边的列是我想要的列:

Group   Value   Target_CumSum   
1        3         0     
1        2         2  
1        5         7
1        4         11
2        1         0
2        5         5
2        9         14
2        3         17

我如何执行cumsum()每个组的第二个元素而不是第一个元素?

df = pd.DataFrame({'Group': [1,1,1,1,2,2,2,2], 'Value': [3,2,5,4,1,5,9,3], 'Target_CumSum': [0,2,7,11,0,5,14,17]})
#df['MyCumSum']= df.groupby(['Group'])['Value'].cumsum()

标签: pandasnumpydataframe

解决方案


IIUC

g=df.groupby('Group').Value
g.cumsum()-g.transform('first')
Out[597]: 
0     0
1     2
2     7
3    11
4     0
5     5
6    14
7    17
Name: Value, dtype: int64

推荐阅读