pandas.tseries.offsets.CustomBusinessDay #
- pandas.tseries.offsets类 。自定义工作日#
DateOffset 子类代表可能的 n 个自定义工作日。
在 CustomBusinessDay 中,我们可以使用自定义周掩码、假期和日历。
- 参数:
- n整数,默认1
代表的天数。
- 标准化布尔值,默认 False
在生成日期范围之前将开始/结束日期标准化为午夜。
- weekmask str,默认“周一周二周三周四周五”
有效工作日的周掩码,传递至
numpy.busdaycalendar
。- 假期清单
要从有效工作日集中排除的日期列表/数组,传递给
numpy.busdaycalendar
.- 日历np.busdaycalendar
要集成的日历。
- 偏移量timedelta,默认timedelta(0)
要应用的时间偏移。
例子
在下面的示例中,默认参数给出了下一个工作日。
>>> ts = pd.Timestamp(2022, 8, 5, 16) >>> ts + pd.offsets.CustomBusinessDay() Timestamp('2022-08-08 16:00:00')
可以通过参数指定工作日
weekmask
。要将返回的日期时间对象转换为其字符串表示形式,下一个示例中将使用函数 strftime()。>>> import datetime as dt >>> freq = pd.offsets.CustomBusinessDay(weekmask="Mon Wed Fri") >>> pd.date_range(dt.datetime(2022, 12, 10), dt.datetime(2022, 12, 21), ... freq=freq).strftime('%a %d %b %Y %H:%M') Index(['Mon 12 Dec 2022 00:00', 'Wed 14 Dec 2022 00:00', 'Fri 16 Dec 2022 00:00', 'Mon 19 Dec 2022 00:00', 'Wed 21 Dec 2022 00:00'], dtype='object')
使用 NumPy 工作日日历,您可以定义自定义假期。
>>> import datetime as dt >>> bdc = np.busdaycalendar(holidays=['2022-12-12', '2022-12-14']) >>> freq = pd.offsets.CustomBusinessDay(calendar=bdc) >>> pd.date_range(dt.datetime(2022, 12, 10), dt.datetime(2022, 12, 25), freq=freq) DatetimeIndex(['2022-12-13', '2022-12-15', '2022-12-16', '2022-12-19', '2022-12-20', '2022-12-21', '2022-12-22', '2022-12-23'], dtype='datetime64[ns]', freq='C')
如果你想改变第n天的结果,你可以使用参数
offset
。>>> pd.Timestamp(2022, 8, 5, 16) + pd.offsets.CustomBusinessDay(1) Timestamp('2022-08-08 16:00:00')
>>> import datetime as dt >>> ts = pd.Timestamp(2022, 8, 5, 16) >>> ts + pd.offsets.CustomBusinessDay(1, offset=dt.timedelta(days=1)) Timestamp('2022-08-09 16:00:00')
属性
base
返回调用偏移对象的副本,其中 n=1 且所有其他属性相等。
返回表示频率的字符串。
返回偏移量的额外参数的字典。
返回表示基频的字符串。
offset
self._offset 的别名。
方法
copy
()返回频率的副本。
(已弃用)返回布尔值,频率是否为单位频率 (n=1)。
is_month_end
(TS)返回布尔值,时间戳是否出现在月末。
is_month_start
(TS)返回布尔值,时间戳是否出现在月份开始时。
is_on_offset
(dt)返回时间戳是否与此频率相交的布尔值。
is_quarter_end
(TS)返回布尔值,时间戳是否出现在季度末。
is_quarter_start
(TS)返回布尔值,时间戳是否出现在季度开始时。
is_year_end
(TS)返回布尔值,时间戳是否出现在年末。
is_year_start
(TS)返回布尔值,时间戳是否出现在年份开始。
rollback
(dt)仅当不在偏移上时,才将提供的日期向后滚动到下一个偏移。
rollforward
(dt)仅当不在偏移时,将提供的日期向前滚动到下一个偏移。