如何将产品×周次宽格式销售数据集转换为指定结构的长格式数据集
这是典型的宽表转长表操作,主流数据分析工具的实现方案如下:
Python Pandas 实现
假设你读取后的原始数据框命名为df,产品编号(P1-P6)为数据框的行索引,列名为周次标识(W1-W52):
import pandas as pd # 把行索引转为产品编号列 df = df.reset_index(names="Product_Number") # 调用melt完成宽转长 df_long = df.melt( id_vars="Product_Number", var_name="Time", value_name="Product_Sales" ) # 可选:按周次、产品编号排序 df_long = df_long.sort_values(by=["Time", "Product_Number"], ignore_index=True)
R 实现
基于tidyverse生态的tidyr::pivot_longer实现,假设原始数据框命名为df,产品编号为行名:
library(tidyverse) df_long <- df %>% # 将行名转为产品编号列 rownames_to_column("Product_Number") %>% pivot_longer( cols = starts_with("W"), names_to = "Time", values_to = "Product_Sales" )
如果你的原始数据读取后产品编号已经是单独的列,仅需调整id_vars(Pandas)或指定id_cols(R)为对应的产品列名即可。
内容的提问来源于stack exchange,提问作者SaltySenator
相关产品推荐
相关产品推荐

