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

如何在Pandas中按Base SKU分组并新增汇总列,同时保留原列?

解决方案

你需要用groupby.transform()方法来实现——它会对每个分组计算聚合值,然后把结果广播到该分组的每一行,这样就能保留原DataFrame的所有行和列,同时新增汇总列。

具体代码

假设你的原始DataFrame是df,执行以下代码:

# 按Base SKU分组,计算每组Price和MRP的总和,广播到每行
df['Combined Price'] = df.groupby('Base SKU')['Price'].transform('sum')
df['Combined MRP'] = df.groupby('Base SKU')['MRP'].transform('sum')

示例验证

比如你的原始数据是:

Base SKUPriceMRPTitleurlProd Sku
SKU0011015商品Aurl1SKU001-1
SKU0012025商品Aurl2SKU001-2

执行代码后会得到:

Base SKUPriceMRPTitleurlProd SkuCombined PriceCombined MRP
SKU0011015商品Aurl1SKU001-13040
SKU0012025商品Aurl2SKU001-23040

为什么之前的方法不行

  • 第一种方法用agg()+reset_index(),只会返回分组后的聚合结果行,丢失了原数据的细节行
  • 第二种方法在agg()里对其他列取first,本质还是按分组聚合为一行,所以最终只剩一行

内容的提问来源于stack exchange,提问作者Gururaj B R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:17:20