如何在Pandas中按指定起始时间重采样分钟级OHLCV数据?
Pandas自定义重采样时间锚点解决方案
要实现7分钟间隔重采样,且首行时间从2005-09-07 08:07:00开始、后续按08:14:00等间隔生成,关键是修正默认的区间对齐逻辑,指定目标时间锚点。以下是两种可行方法:
方法1:硬指定起始锚点(推荐)
直接通过origin参数设置重采样的基准起始时间为目标的第一个区间结束点,配合原有的label="right"和closed="right"参数:
df.resample("7min", label="right", closed="right", origin="2005-09-07 08:07:00").sum()
该方法会让重采样区间严格对齐到目标时间点:
- 第一个区间覆盖
08:00:00 ~ 08:07:00,标签为08:07:00 - 第二个区间覆盖
08:07:00 ~ 08:14:00,标签为08:14:00
以此类推,完全匹配需求。
方法2:通过偏移量调整锚点
如果不想硬编码具体时间,可以计算默认锚点与目标锚点的偏移量:
默认7分钟间隔的结束点序列从午夜开始(00:07, 00:14,...08:03,08:10...),我们需要将结束点偏移至08:07,08:14...,因此设置偏移量为4分钟(08:07 - 08:03 = 4min):
df.resample("7min", label="right", closed="right", offset="4min").sum()
该方法无需指定具体日期,适合动态调整场景。
示例输出
执行上述任意一种方法后,输出的首行时间会是2005-09-07 08:07:00,后续按7分钟间隔递增,例如:
Open High Low Close Volume Timestamp 2005-09-07 08:07:00 7789.75 7791.00 7789.00 7790.00 480 2005-09-07 08:14:00 ...(后续区间的求和结果)
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

