首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算每组前n行的总和

问计算每组前n行的总和
EN

Stack Overflow用户
提问于 2020-10-16 03:51:47
回答 1查看 620关注 0票数 3

我想要做的是按列A分组,然后取前两行的和,然后将该值指定为新列。示例如下:

DF:

代码语言:javascript
复制
ColA   ColB
 AA      2
 AA      1
 AA      5
 AA      3
 BB      9
 BB      3
 BB      2
 BB      12
 CC      0
 CC      10
 CC      5
 CC      3

所需的DF:

代码语言:javascript
复制
ColA   ColB    NewCol
 AA      2       3
 AA      1       3
 AA      5       3 
 AA      3       3
 BB      9       12
 BB      3       12
 BB      2       12
 BB      12      12
 CC      0       10
 CC      10      10 
 CC      5       10
 CC      3       10

对于AA,它查看ColB,取前两行的总和,并将求和值赋给newCol。我尝试过创建字典,方法是循环遍历惟一的ColA值,创建前两行的子集数据帧,求和,然后用值填充字典。然后映射回字典-但我的数据帧非常大,这需要永远的时间。有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-16 03:55:45

您可以使用transform为每行获取一个新值和一个lambda函数。在lambda中,您可以使用head(2)获取每个组的前2行,然后对它们执行sum()操作:

代码语言:javascript
复制
df.groupby('ColA')['ColB'].transform(lambda x: x.head(2).sum())
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64378767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档