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

如何用Python DataFrame转换宽表为长表以绘制时间线图表?

宽表转时间序列长表的实现方案

针对每行对应客户ID、每列对应30分钟时间点数值的宽表,以下是几种主流工具的转长表方案,转换后即可直接用于时间线图表绘制:

Python(Pandas)

这是处理批量数据最高效的方式,核心使用melt方法完成宽表转长表:

import pandas as pd

# 读取宽表数据(示例为CSV格式,可根据实际调整读取方式)
df_wide = pd.read_csv("customer_time_data.csv")

# 执行宽转长:保留customer_id列,将所有时间列转为timestamp行,对应数值转为value列
df_long = df_wide.melt(
    id_vars=["customer_id"],
    var_name="timestamp",
    value_name="value"
)

# 可选:将timestamp列转为时间类型,便于后续时间序列分析和绘图
df_long["timestamp"] = pd.to_datetime(df_long["timestamp"])

# 保存转换后的长表
df_long.to_csv("customer_time_long.csv", index=False)

SQL(以PostgreSQL/SQL Server为例)

如果数据存储在数据库中,可通过SQL语句直接完成转换:

PostgreSQL(使用LATERAL JOIN + 动态SQL)

适合列数较多的场景,自动生成所有时间列的转换逻辑:

DO $$
DECLARE
    cols text;
BEGIN
    -- 自动拼接所有非customer_id列的转换语句
    SELECT string_agg(format('(''%s'', "%s")', column_name, column_name), ', ')
    INTO cols
    FROM information_schema.columns
    WHERE table_name = 'customer_time_data' AND column_name != 'customer_id';

    -- 执行动态生成的转长表SQL
    EXECUTE format('
        SELECT customer_id, timestamp_column AS timestamp, value_column AS value
        FROM customer_time_data
        LATERAL (VALUES %s) AS unpivoted(timestamp_column, value_column)
    ', cols);
END $$;

SQL Server(使用CROSS APPLY)

SELECT 
    customer_id,
    unpivoted.timestamp,
    unpivoted.value
FROM 
    customer_time_data
CROSS APPLY (
    VALUES
        ('2024-01-01 00:00', [2024-01-01 00:00]),
        ('2024-01-01 00:30', [2024-01-01 00:30]),
        -- 按此格式列出所有时间列,或使用动态SQL批量生成
        ...
) AS unpivoted(timestamp, value);

Excel(Power Query)

适合非编程用户,可视化操作完成转换:

  • 选中包含表头的整个数据区域
  • 点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器
  • 选中customer_id列,右键选择「逆透视其他列」
  • 将自动生成的「属性」列重命名为timestamp,「值」列重命名为value
  • 点击「关闭并上载」,转换后的长表将导入新工作表

注意事项

  • 转换后建议将timestamp列转为标准时间类型,避免后续绘图时出现格式问题
  • 若原表存在缺失值,转换后会保留空值(如Pandas的NaN、SQL的NULL),可根据需求选择删除或填充
  • 针对超大量列的场景(如一个月的30分钟数据共1440列),优先选择Python或动态SQL方案,避免手动操作失误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:45:17