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

如何在Pandas中保留OHLC数据末尾非完整3小时重采样区间?

问题描述

现有一份以Datetime为索引的OHLC数据DataFrame,需要执行从早7点开始的3小时区间重采样,即使每日末尾仅剩余2小时数据,也需生成对应区间的重采样结果。当前使用的重采样代码如下:

df = df.resample('3H', offset='07h00min').agg(
    {'open': 'first', 'high': 'max', 'low': 'min', 'close': 'last', 'volume': 'sum'})

但输出结果中,每日22:00、23:00的数据因未构成完整3小时区间而未被纳入,请问如何确保生成包含该2小时数据的22:00区间?

解决方案

默认的resample仅保留完整时间区间,要包含末尾不完整的区间,只需在参数中添加closed='left'、label='left',同时指定origin='start_day'锚定每日7点的起始逻辑:

df = df.resample('3H', offset='07h00min', closed='left', label='left', origin='start_day').agg(
    {'open': 'first', 'high': 'max', 'low': 'min', 'close': 'last', 'volume': 'sum'})

参数解释

  • closed='left':设置区间左闭合,即每个区间包含起始时间点、不包含结束时间点,这样哪怕末尾区间时长不足3小时,只要存在起始时间对应的有效数据,就会被保留。
  • label='left':用区间的左端点作为重采样后索引的标签,刚好匹配你需要的22:00作为区间标识的需求。
  • origin='start_day':确保每日的重采样起始点严格从当天7点开始,避免跨天偏移导致的逻辑混乱。

如果数据存在跨天场景,还可以通过df.index.max()验证重采样后的索引是否包含末尾的不完整区间,确保所有数据都被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:12:38