从版本0.18.1开始,您可以使用^{}:The CustomBusinessHour is a mixture of BusinessHour and
CustomBusinessDay which allows you to specify arbitrary holidays. For
details, see Custom Business Hour (GH11514)In [1]: from pandas.tseries.offsets import CustomBusinessHour
In [2]: from pandas.tseries.holiday import USFederalHolidayCalendar
In [3]: bhour_us = CustomBusinessHour(calendar=USFederalHolidayCalendar())
Friday before MLK Day
In [4]: dt = datetime(2014, 1, 17, 15)
In [5]: dt + bhour_us
Out[5]: Timestamp('2014-01-17 16:00:00')
Tuesday after MLK Day (Monday is skipped because it’s a holiday)
In [6]: dt + bhour_us * 2
Out[6]: Timestamp('2014-01-21 09:00:00')
我使用的一个例子是from pandas.tseries.offsets import CustomBusinessHour
from pandas.tseries.holiday import Holiday, AbstractHolidayCalendar
class MyCalendar(AbstractHolidayCalendar):
rules = [Holiday('my birthday', month=6, day=6)]
cbh = CustomBusinessHour(2, start='10:00', end='16:00', calendar=MyCalendar())
pd.date_range('20170602', periods=20, freq=cbh)
Out:
DatetimeIndex(['2017-06-02 10:00:00', '2017-06-02 12:00:00',
'2017-06-02 14:00:00', '2017-06-05 10:00:00',
'2017-06-05 12:00:00', '2017-06-05 14:00:00',
'2017-06-07 10:00:00', '2017-06-07 12:00:00',
'2017-06-07 14:00:00', '2017-06-08 10:00:00',
'2017-06-08 12:00:00', '2017-06-08 14:00:00',
'2017-06-09 10:00:00', '2017-06-09 12:00:00',
'2017-06-09 14:00:00', '2017-06-12 10:00:00',
'2017-06-12 12:00:00'],
dtype='datetime64[ns]', freq='2CBH')