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

如何使用Pandas重构含小时时间列与日期列的DataFrame

解决方案

步骤说明

你的需求是将宽格式的DataFrame(小时列+多日期列)转换为长格式的日期时间+数值结构,可通过Pandas的melt函数结合日期时间拼接实现,具体步骤如下:

代码实现

import pandas as pd

# 读取数据(替换为你的本地文件路径或对应读取方式)
df = pd.read_excel("数据文件.xlsx")  # 若为CSV格式则改用pd.read_csv

# 1. 重塑数据:将多日期列转为行数据
melted_df = df.melt(
    id_vars="小时",  # 保留小时列作为标识
    var_name="日期",  # 原日期列的列名转为"日期"列的取值
    value_name="数值"  # 原单元格的值存入"数值"列
)

# 2. 合并日期与小时为完整日期时间
# 若日期/小时格式特殊,可添加format参数指定解析规则,例如format="%Y/%m/%d %H:%M"
melted_df["日期时间"] = pd.to_datetime(melted_df["日期"] + " " + melted_df["小时"])

# 3. 整理最终结果:调整列顺序、按时间排序并重置索引
result_df = melted_df[["日期时间", "数值"]].sort_values("日期时间").reset_index(drop=True)

效果说明

执行上述代码后,result_df的结构将与目标输出一致:每行对应一个完整的日期时间戳,以及该时间点对应的数值,且数据按时间顺序排列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:01:22