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

如何在pandas中设置多日期列多重索引并实现时间重采样

问题原因

你原有代码报错且不符合需求的核心原因有两点:

  1. pandas的resample方法作用于多重索引时,默认无法识别要对哪个时间维度做重采样,需要显式指定level参数;
  2. 即使指定了level重采样其中一个时间索引,另一个时间索引也不会自动同步偏移,和你预期的两个时间列同步间隔30分钟的逻辑不匹配。

解决方案

从你给出的预期输出可以看到,Datetime2和Datetime1固定相差1小时,直接按如下逻辑处理即可:

import pandas as pd

# 第一步:先将两列日期转换为pandas datetime类型,避免类型不兼容报错
df["Datetime1"] = pd.to_datetime(df["Datetime1"])
df["Datetime2"] = pd.to_datetime(df["Datetime2"])

# 第二步:将Datetime1设为单索引做30分钟重采样,前向填充Value值
df_resampled = df.set_index("Datetime1")["Value"].resample("30T").ffill().reset_index()

# 第三步:按固定1小时差计算Datetime2即可
df_resampled["Datetime2"] = df_resampled["Datetime1"] + pd.Timedelta(hours=1)

# 如果后续需要使用多重索引,执行如下代码即可
df_resampled = df_resampled.set_index(["Datetime1", "Datetime2"])

执行后输出的结构完全匹配你给出的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:57:03