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

Python实现按商品的周累计销售额(WTD Sales)求助

解决方案

你的需求完全可以用groupby()实现,核心是对每个商品分组后,对销售额按周的顺序做累计求和。你之前的代码问题在于wtd是未定义的自定义函数,实际上用pandas内置的cumsum()方法就能直接完成周累计计算。

步骤说明

  • 先排序数据:确保每个商品的记录按周数升序排列,否则累计结果会混乱。
  • 分组累计求和:按item分组后,对sales列应用累计求和方法,生成wtd sales列。

完整代码示例

import pandas as pd

# 先按商品和周排序,保证累计逻辑正确
input_df = input_df.sort_values(by=['item', 'week'])

# 新增周累计销售额列
input_df['wtd sales'] = input_df.groupby(['item'])['sales'].cumsum()

# 也可以用transform写法,效果完全一致:
# input_df['wtd sales'] = input_df.groupby(['item'])['sales'].transform('cumsum')

代码解释

  • sort_values(by=['item', 'week']):让每个商品的周数据按时间顺序排列,确保累计求和是从最早的周开始累加。
  • groupby(['item']):将数据按商品维度拆分,每个商品单独计算自身的累计销售额。
  • cumsum():对分组后的sales列做累计求和,比如某商品第1周销售额100,第2周200,对应的wtd sales就是100、300。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:55:15