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

如何用Pandas将数据透视为按周拆列并填充对应销售值?

正确的Pandas实现方法

要将你的长格式DataFrame转换为目标宽格式,直接用pivot或pivot_table即可,具体步骤如下:

基础场景(无重复记录)

如果每个电影每周只有一条销售记录,使用pivot方法:

# 转换为宽表:行是movie,列是week,值为sales
wide_df = df.pivot(index='movie', columns='week', values='sales')
# 重命名列名为week_1到week_52
wide_df.columns = [f'week_{col}' for col in wide_df.columns]
# 可选:将movie从索引转为普通列
wide_df = wide_df.reset_index()

存在重复记录的场景

如果同一电影同一周有多条销售数据,用pivot_table指定聚合逻辑(比如求和):

# 按movie和week聚合销售数据,这里指定用sum求和
wide_df = df.pivot_table(index='movie', columns='week', values='sales', aggfunc='sum')
# 重命名列名
wide_df.columns = [f'week_{col}' for col in wide_df.columns]
wide_df = wide_df.reset_index()

为什么之前的方法无效

  • df.transpose()只是单纯反转行列,不会按电影和周进行分组重组,完全不符合需求。
  • 你之前使用的df.pivot(columns=['week', 'sales'])参数错误:columns参数应该指定用来生成新列名的字段(这里是week),values才是填充单元格的字段(sales),不能把sales放到columns里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:05:13