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

Python pandas按channel分组求和并新增总量与占比列的实现方法

实现方案

直接用Pandas的transform方法即可,不需要额外的表关联操作,代码简洁易读:

# 1. 新增渠道总销量列:按channel分组求和,结果和原表行对齐
df['units_per_channel'] = df.groupby('channel')['units'].transform('sum')

# 2. 新增门店销量占比列:单店销量 / 所属渠道总销量,保留2位小数
df['store_share'] = (df['units'] / df['units_per_channel']).round(2)

如果你需要完整可运行的测试代码,可以参考下面的样例:

import pandas as pd

# 构造测试数据
df = pd.DataFrame({
    'channel': ['Offline']*3 + ['Online']*3,
    'store': ['Bournemouth', 'Kettering', 'Manchester']*2,
    'units': [62, 90, 145, 220, 212, 272]
})

# 核心逻辑
df['units_per_channel'] = df.groupby('channel')['units'].transform('sum')
df['store_share'] = (df['units'] / df['units_per_channel']).round(2)

# 输出结果
print(df)

运行后输出的结果和你预期的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:54:01