pandas - 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()
解决方案
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
推荐阅读
- reactjs - 如何将 Strapi 与已开发架构的数据库一起使用?
- javascript - 浏览器全屏时需要禁用 esc 键
- r - 如何在“扩展变换(R 语法)”节点中正确制作“modelerData”和“modelerDataModel”添加多个列
- c++ - 在 std::map 中找到最小值
- python - 我想在大写字母开始的地方分隔一个字符串,但如果它前面有一个连字符,则在 python 中使用正则表达式
- python - Pyspark包上传站点或方法
- c++ - std::atomic 怎么样
::notify_all 已订购? - r - Group_by 有一个转折。计算其余行的平均值或某些行值为零
- html - 全屏时填充父 IFrame 或调整大小保持纵横比的 CSS 是什么?
- html - 在悬停 CSS 上实现开关