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

如何转换宽格式门店数据集为长格式以适配时间序列分析需求?

数据格式转换方案(Python Pandas 实现)

你需要做的是宽格式数据表转长格式数据表,是时间序列预测场景下的标准预处理操作,直接用Pandas内置的melt方法即可实现,完整操作如下:

1. 构造示例原始数据(已有df可直接跳过该步骤)

import pandas as pd

df = pd.DataFrame({
    'Date': ['1-1-21', '1-2-21', '1-3-21'],
    'store_1': [0.5, 0.3, 0.6],
    'store_2': [0.2, 0.7, 0.9],
    'store_3': [0.3, 0.1, 0.4]
})

2. 执行宽转长操作

# 保留Date列,将所有store_开头的列转为行格式
df1 = df.melt(
    id_vars="Date", 
    var_name="tmp_store_col", 
    value_name="value"
)
# 提取纯数字的门店编号
df1["store number"] = df1["tmp_store_col"].str.extract(r"store_(\d+)").astype(int)
# 调整列顺序、删除临时列,得到目标格式
df1 = df1[["Date", "store number", "value"]]
# 按门店、日期排序,和示例输出顺序完全一致
df1 = df1.sort_values(by=["store number", "Date"], ignore_index=True)

输出结果验证

打印df1即可得到你需要的格式:

Datestore numbervalue
1-1-2110.5
1-2-2110.3
1-3-2110.6
1-1-2120.2
1-2-2120.7
1-3-2120.9
1-1-2130.3
1-2-2130.1
1-3-2130.4

如果使用R语言,可以用tidyr包的pivot_longer方法实现,参考代码:

library(tidyr)
library(dplyr)

df1 <- df %>%
  pivot_longer(cols = starts_with("store_"),
               names_to = "store number",
               names_prefix = "store_",
               values_to = "value") %>%
  arrange(`store number`, Date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:09:02