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

如何用Pandas将宽格式时间序列DataFrame转为长格式?

将宽格式DataFrame转换为长格式的解决方案

用pandas的melt函数就能实现你要的效果,之前没得到精确输出大概率是没处理好参数或日期格式,直接看步骤:

步骤说明

  • 用melt把宽表转成基础长格式,指定Hour作为保留的标识列,其他日期列转成Date列,对应数值转成Values列
  • 把原日期列名(比如Wed Aug 10 2022)转换成你要的8/10/2022格式
  • 可选排序,让结果和你给出的示例顺序一致

完整代码

import pandas as pd

# 假设df是你的宽格式DataFrame
long_df = df.melt(
    id_vars='Hour',  # 保留不转换的列
    var_name='Date',  # 原日期列名转为新列的名称
    value_name='Values'  # 原数值列转为新列的名称
)

# 转换日期格式为mm/dd/yyyy
long_df['Date'] = pd.to_datetime(long_df['Date']).dt.strftime('%m/%d/%Y')

# 按日期和小时排序,和示例输出顺序匹配
long_df = long_df.sort_values(by=['Date', 'Hour']).reset_index(drop=True)

转换后结果示例

DateHourValues
08/10/2022152602
08/10/2022249970
08/10/2022348188
.........
08/11/20222456233

注:wide_to_long更适合列名有统一前缀后缀的场景(比如date_20220810),你的原列名格式不匹配,所以用melt更直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:54:36