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

如何将Pandas DataFrame长表转换为按时间对齐的宽表结构

Pandas长表转指定结构宽表实现方案

你需要的是典型的长表转宽表操作,直接用Pandas内置的pivot方法即可快速实现。

步骤1:示例原始数据(可跳过,用于验证效果)

import pandas as pd

# 模拟你描述的原始表结构
df = pd.DataFrame({
    "Nombre": ["totalVehiculos", "totalVelocidad", "totalVehiculos", "totalVelocidad"],
    "Valor": [123, 62, 147, 58],
    "Fecha": ["2024-05-01", "2024-05-01", "2024-05-02", "2024-05-02"]
})

步骤2:核心转换代码

无重复数据场景(同一Fecha下同一个Nombre只有一行)

# 按Fecha分组,将Nombre的取值转为列名,对应Valor为列值
df_wide = df.pivot(index="Fecha", columns="Nombre", values="Valor").reset_index()
# 可选:调整列顺序为你要求的顺序
df_wide = df_wide[["Fecha", "totalVehiculos", "totalVelocidad"]]

存在重复数据场景(同一Fecha下同一个Nombre有多行)

如果你的原始数据存在同一时间同一指标有多条记录的情况,用pivot_table指定聚合规则即可,示例为求和聚合,你可以根据需求替换为'mean'/'max'等:

df_wide = df.pivot_table(
    index="Fecha", 
    columns="Nombre", 
    values="Valor", 
    aggfunc="sum"
).reset_index()

转换完成后的df_wide就是你需要的结构:每一行对应唯一时间点,列依次为Fecha、totalVehiculos、totalVelocidad。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:00