You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于条件为排序后的DataFrame新增result列并合并同名值

解决方法:用Pandas分组求和快速生成result列

嘿,这个需求其实用Pandas的内置方法就能轻松搞定,不用写复杂的循环逻辑。咱们直接上代码,再解释细节:

核心代码

假设你的DataFrame变量名为df,执行以下代码就能得到想要的结果:

# 按name分组计算对应valor的总和,并映射回原DataFrame的每一行
df['result'] = df.groupby('name')['valor'].transform('sum')

为什么这么做?

  • groupby('name'):把整个DataFrame按照name列的值分成不同的组,比如所有ACC的行是一组,ACE的行是另一组,以此类推。
  • transform('sum'):这个方法的妙处在于,它会计算每个分组里valor列的总和,然后把这个总和赋值给该分组的每一行——正好对应你要的“当前行与后续同name行的valor相加”的需求,本质就是同一name下所有valor的累加值。

验证你的示例数据

用你的测试数据跑这个代码,得到的结果会是:

datenamevalorresult
2018-03-01ACC7575
2018-03-01ACE50100
2018-03-20ACE50100
2018-03-01BBV2040
2018-03-14BBV2040
2018-04-16BBV5840
2018-04-20BBV-5840

完全符合你的需求,而且这个方法效率很高,哪怕你的DataFrame有几万行,也能快速处理,比手动遍历行的方式快得多。

内容的提问来源于stack exchange,提问作者JamesHudson81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:16:32