Python 在Pandas中结合CustomBusinessDay和BusinessHour课程
我最近开始使用Pandas,并发现and类在处理日历数学时非常有用,同时考虑到特定的业务规则。然而,我想知道是否有可能将它们结合起来计算出这两个类的时间增量 例如,我希望在开始时间中添加n个营业时间,并让它跳过BusinessHour类定义的“休息时间”,以及CustomBusinessDay类定义的“休息日”中的所有时间Python 在Pandas中结合CustomBusinessDay和BusinessHour课程,python,datetime,pandas,Python,Datetime,Pandas,我最近开始使用Pandas,并发现and类在处理日历数学时非常有用,同时考虑到特定的业务规则。然而,我想知道是否有可能将它们结合起来计算出这两个类的时间增量 例如,我希望在开始时间中添加n个营业时间,并让它跳过BusinessHour类定义的“休息时间”,以及CustomBusinessDay类定义的“休息日”中的所有时间 对该库有更多经验的人是否知道这是否容易实现,或者,如果不知道,对如何将此功能封装到另一个类中有什么建议?从0.18.1版开始,您可以使用: CustomBusinessHou
对该库有更多经验的人是否知道这是否容易实现,或者,如果不知道,对如何将此功能封装到另一个类中有什么建议?从0.18.1版开始,您可以使用: CustomBusinessHour是BusinessHour和BusinessHour的混合体 CustomBusinessDay,允许您指定任意假日。对于 详情见() 我正在使用的一个例子是
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')
@樵夫,你能详细说明一下吗?我在帖子中链接到了那个doc页面,但我没有看到任何地方表明这两个类可以一起使用。
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')