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

Pandas时间序列重采样如何调整分箱匹配数据集起止时间生成4小时K线

问题原因

你遇到的边界异常问题,本质是全局4小时重采样默认对齐自然时间,使用origin='end'从序列末尾倒推切分时,没有和每日09:30的交易起始时间对齐,才会出现07:59这类非交易时段的分箱边界。


兼容Pandas 1.3.0的实现方案

确认你的DataFrame时间索引为datetime64类型且按时间正序排序后,使用「按交易日分组+组内重采样」的逻辑,保证分箱从每日09:30开始对齐:

import pandas as pd

# 原有聚合规则保持不变
agg_dict = {'open': 'first','high': 'max','low': 'min','cls': 'last','vol': 'sum'}

# 预处理:保证索引格式正确、按时间正序排列
fullRth.index = pd.to_datetime(fullRth.index)
fullRth = fullRth.sort_index()

# 按自然日分组,组内从当日交易起始时间开始重采样
data_4hour = fullRth.groupby(pd.Grouper(freq='D')).apply(
    lambda df: df.resample('4H', label='left', origin='start').agg(agg_dict)
).droplevel(0).dropna().round(2).sort_index(ascending=False)

如果需要匹配你示例中的11:59分左边界格式,只需要在重采样完成后对索引做1分钟偏移即可:

data_4hour.index = data_4hour.index - pd.Timedelta(minutes=1)

说明

  • 该方案不会生成跨交易日的分箱,所有分箱都落在09:30-16:00的交易时段内
  • 完全适配Python 3.9.6、Numpy 1.21.1、Pandas 1.3.0的运行环境,无需升级依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:24:03