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

如何将宽格式数据重塑为时间序列/长格式并合并Date列?

宽格式数据转时间序列长格式实现方案

Python Pandas 实现

假设你的数据框名为df,左侧为固定标识列(如编号、地区名),右侧是格式为1997年8月至2001年8月的日期列。

  • 核心使用melt函数完成重塑:
import pandas as pd

# 替换'id_vars'里的内容为你实际的固定列名(多列用列表,如['ID', 'Region'])
df_long = df.melt(
    id_vars=['ID'],
    var_name='Date',
    value_name='Value'
)

# 将日期列转为标准日期格式(适配中文年月格式)
df_long['Date'] = pd.to_datetime(df_long['Date'], format='%Y年%m月')

# 若有缺失值,按需填充(示例填充为0)
df_long['Value'] = df_long['Value'].fillna(0)

原始宽表各日期列长度一致时,重塑后的长表会自动保持每行数据对齐,总长度为「固定列行数 × 日期列数量」。

R Tidyr 实现

假设数据框名为df,操作逻辑与Python一致:

  • 核心使用pivot_longer函数完成重塑:
library(tidyr)
library(lubridate)

# 替换'-ID'为你的固定列名(多列用c(-ID, -Region))
df_long <- df %>%
  pivot_longer(
    cols = -ID,
    names_to = 'Date',
    values_to = 'Value'
  )

# 转换为标准日期格式(适配中文年月格式)
df_long$Date <- ymd(df_long$Date, format = '%Y年%m月')

# 按需填充缺失值
df_long$Value <- replace_na(df_long$Value, 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:25:20