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

Pandas重采样1分钟OHLC数据时起始时间偏移问题求助

解决4分钟OHLC重采样起始时间偏移问题

要解决从09:15开始的4分钟重采样偏移问题,核心是指定重采样的基准起始时间,以下是具体实现方案:

1. 确保时间索引格式正确

首先确认你的DataFrame索引是datetime64类型,若不是先转换:

import pandas as pd

# 转换索引为datetime类型
df.index = pd.to_datetime(df.index)

2. 使用origin参数指定重采样起始点

利用resample的origin参数直接指定基准时间为09:15,这样重采样区间会从该时间开始划分:

# 重采样为4分钟OHLC,指定起始基准为09:15
resampled_df = df.resample('4min', origin='09:15').agg({
    'Open': 'first',   # 区间第一个开盘价
    'High': 'max',     # 区间最高价
    'Low': 'min',      # 区间最低价
    'Close': 'last'    # 区间最后一个收盘价
})

生成的时间戳会是09:15、09:19、09:23...完全符合需求。

3. 兼容旧版本Pandas的方案(使用base参数)

如果你的Pandas版本低于0.24(origin参数是0.24新增),可以用base参数替代:

# base=15 表示以分钟数15为基准划分4分钟区间
resampled_df = df.resample('4min', base=15).agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last'
})

4. 过滤非交易时间区间(可选)

如果数据包含非目标时间的区间,可以用between_time过滤:

# 保留09:15到收盘时间的区间(示例为15:30)
resampled_df = resampled_df.between_time('09:15', '15:30')

偏移原因说明

默认情况下,resample会以数据的第一个时间戳或整点为基准划分区间,若你的数据起始时间晚于09:15,或默认基准未对齐09:15,就会导致起始时间偏移1分钟。通过指定origin或base参数,强制对齐到09:15即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:07:20