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

如何在Python中将透视矩阵格式的DataFrame转换为时间序列?

解决方案:将宽格式时间数据转换为时间序列结构

你可以通过**逆透视(melt)**操作实现需求,以下是具体步骤和代码示例:

步骤说明

  1. 使用melt将原DataFrame的时间列(如13:00、14:00)转换为行数据,保留Date列作为标识列;
  2. 将Date列与转换后的时间列合并,转换为完整的datetime类型;
  3. 整理列名和结构,得到目标格式。

代码示例

1. 构造样例数据

import pandas as pd

# 模拟你的原始DataFrame
df = pd.DataFrame({
    'Date': ['2022-01-01', '2022-01-02'],
    '13:00': [10, 20],
    '14:00': [15, 25],
    '15:00': [20, 30]
})

2. 逆透视转换

# 将时间列转为行,生成Time和Data列
melted_df = df.melt(id_vars='Date', var_name='Time', value_name='Data')

3. 合并日期与时间为datetime类型

# 拼接日期和时间字符串,转换为datetime
melted_df['Date'] = pd.to_datetime(melted_df['Date'] + ' ' + melted_df['Time'])

# 移除多余的Time列,得到最终结果
final_df = melted_df.drop(columns='Time')

最终结果示例

Date  Data
0 2022-01-01 13:00:00    10
1 2022-01-02 13:00:00    20
2 2022-01-01 14:00:00    15
3 2022-01-02 14:00:00    25
4 2022-01-01 15:00:00    20
5 2022-01-02 15:00:00    30

注:你提到的pivot是透视操作(行转列),而此处需要的是逆透视(列转行),因此melt是更合适的工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:31:22