首页 > 解决方案 > 熊猫市场日历缺少第一期

问题描述

为什么第一时间段又名 9:30 会被中断?

它将第一个时段返回为 10:00。这是不正确的。

我究竟做错了什么?

import pandas_market_calendars as mcal

nyse = mcal.get_calendar('NYSE')
early = nyse.schedule(start_date="2020-07-02", end_date="2020-10-14")  # .strftime(date_fmt)


dates = mcal.date_range(early, frequency="30min")
dates = dates.tz_convert('US/Eastern')
dates

DatetimeIndex(['2020-07-02 10:00:00-04:00', '2020-07-02 10:30:00-04:00',
               '2020-07-02 11:00:00-04:00', '2020-07-02 11:30:00-04:00',
               '2020-07-02 12:00:00-04:00', '2020-07-02 12:30:00-04:00',
               '2020-07-02 13:00:00-04:00', '2020-07-02 13:30:00-04:00',
               '2020-07-02 14:00:00-04:00', '2020-07-02 14:30:00-04:00',
               ...
               '2020-10-14 11:30:00-04:00', '2020-10-14 12:00:00-04:00',
               '2020-10-14 12:30:00-04:00', '2020-10-14 13:00:00-04:00',
               '2020-10-14 13:30:00-04:00', '2020-10-14 14:00:00-04:00',
               '2020-10-14 14:30:00-04:00', '2020-10-14 15:00:00-04:00',
               '2020-10-14 15:30:00-04:00', '2020-10-14 16:00:00-04:00'],
              dtype='datetime64[ns, US/Eastern]', length=949, freq=None)

标签: pythondatetimeindex

解决方案


添加参数“关闭”,从“右”更改默认值。

相关文档字符串

:param closed: 与 pandas date_range 含义相同。'right' 将排除第一个值,当结果应仅包括每个柱的收盘价时应使用。

dates = mcal.date_range(early, frequency="30min", closed = "left")

推荐阅读