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

Pandas重采样问题:时间序列起始时间偏移异常排查与解决

时间序列重采样后起始时间偏移的原因与解决方法

我的初始时间序列DataFrame起始时间为2023-01-01 09:00,但使用120T(2小时)频率执行resample操作后,结果的起始时间变成了2023-01-01 08:00,请问该现象的原因是什么?有哪些可行的解决方法?

代码示例

import pandas as pd
import numpy as np

num_rows = 480
start_date = pd.to_datetime('2023-01-01 09:00')
datetime_range = pd.date_range(start=start_date, periods=num_rows, freq='1min')
random_values = np.random.randint(1, 101, size=num_rows)
df = pd.DataFrame({'datetime': datetime_range, 'value': random_values})

display(df)

df_resampled = df.resample('120T', on='datetime').first().reset_index()

display(df_resampled)

运行结果

原始DataFrame:

datetime    value
0   2023-01-01 **09:00:00** 44
1   2023-01-01 09:01:00 38
2   2023-01-01 09:02:00 55
3   2023-01-01 09:03:00 52
4   2023-01-01 09:04:00 49
... ... ...
475 2023-01-01 16:55:00 52
476 2023-01-01 16:56:00 6
477 2023-01-01 16:57:00 46
478 2023-01-01 16:58:00 96
479 2023-01-01 16:59:00 51
480 rows × 2 columns

重采样后结果:

datetime    value
0   2023-01-01 **08:00:00** 44
1   2023-01-01 10:00:00 76
2   2023-01-01 12:00:00 61
3   2023-01-01 14:00:00 27
4   2023-01-01 16:00:00 68

原因分析

Pandas的resample方法默认会基于**频率的“锚点时间”**生成时间区间,而非数据的实际起始时间。对于120T(2小时)频率,默认锚点是当天的00:00,区间按2小时依次划分:00:00-02:00、02:00-04:00……08:00-10:00。你的数据起始时间09:00属于08:00-10:00这个区间,重采样后该区间会用左端点08:00作为标签,因此结果的起始时间显示为08:00。

解决方法

  • 指定origin参数为数据起始点:
    让resample以数据的第一个时间点作为区间锚点,生成从09:00开始的2小时区间:

    df_resampled = df.resample('120T', on='datetime', origin='start').first().reset_index()
    

    调整后重采样结果的起始时间会是2023-01-01 09:00,后续区间依次为11:00、13:00等。

  • 使用offset参数调整区间偏移:
    通过设置偏移量,让区间对齐到09:00开始的时间点。由于默认锚点是00:00,添加1小时偏移后,2小时区间会变为09:00-11:00、11:00-13:00等:

    df_resampled = df.resample('120T', on='datetime', offset='1h').first().reset_index()
    
  • 过滤早于数据起始时间的区间:
    如果不需要修改区间生成逻辑,直接过滤掉重采样结果中时间早于原数据起始时间的行:

    df_resampled = df.resample('120T', on='datetime').first().reset_index()
    df_resampled = df_resampled[df_resampled['datetime'] >= df['datetime'].min()]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:07:51