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

如何用Pandas正确重采样不对齐的股票5分钟数据至30分钟级别?

解决方案

核心错误分析

你把closed='right'和label='right'这两个resample专属参数错误地放到了agg()方法的参数里,导致这两个参数完全没有生效,resample使用了默认的区间划分规则,最终聚合结果和交易软件的区间逻辑不匹配。

交易软件的30分钟K线采用右闭区间规则:

  • 标签为10:00的K线,对应(9:30, 10:00]的时间区间(包含10:00的5分钟数据)
  • 用区间的结束时间作为K线标签

修正后的代码

将closed='right'和label='right'移到resample()方法中,同时保持原有的聚合规则:

df = df.set_index('Date')
# 正确传递resample参数,区间右闭,标签用区间结束时间
df_resampled = df.resample('30T', closed='right', label='right').agg({
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
    'Volume': 'sum'
}).dropna()

验证修正结果

运行上述代码后,得到的结果将与交易软件完全一致:

Open   High    Low  Close    Volume
Date                                                     
2024-11-19 10:00:00  11.75  11.96  11.55  11.90  99048200
2024-11-19 10:30:00  11.89  11.90  11.66  11.71  43994600
2024-11-19 11:00:00  11.72  11.75  11.70  11.74  14492400
2024-11-19 11:30:00  11.75  11.76  11.67  11.69  11252500

关键参数说明

  • closed='right':指定时间区间的右端点是闭合的,例如(9:30,10:00]会包含10:00整的5分钟数据
  • label='right':用区间的右端点作为该K线的时间标签,和交易软件的展示逻辑对齐
  • dropna():自动过滤没有数据的区间(比如9:00-9:30的空区间)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:19:52