如何使用pandas pd.date_range生成不含周末节假日的2小时间隔时间序列
问题原因
CustomBusinessHour的营业时间区间默认是左闭右开,你原先设置end='22:00'时,有效时间范围为00:00 ≤ 时间 < 22:00,2小时间隔下最大符合要求的时间就是20:00,因此无法覆盖到22:00的时间点。
调整方案
如果需要覆盖全天24小时的工作日时间,直接将start和end参数均设置为00:00即可,CustomBusinessHour会自动识别该配置代表全天24小时为有效营业时间,同时会自动排除周末和你指定的法定节假日。
修正后代码
import pandas as pd from pandas.tseries.offsets import CustomBusinessHour from pandas.tseries.holiday import USFederalHolidayCalendar # 核心修改:start和end均设为00:00表示全天24小时有效 f = CustomBusinessHour(n=2, start='00:00', end='00:00', calendar=USFederalHolidayCalendar()) res = pd.date_range('2021-01-01', '2021-01-10', freq=f)
输出验证
运行上述代码后生成的时间序列,每个工作日会包含00:00、02:00、04:00……22:00共12个时间点,完全覆盖24小时间隔2小时的需求,同时自动过滤掉周末和美国联邦法定节假日。
内容的提问来源于stack exchange,提问作者user3344394
相关产品推荐
相关产品推荐

