pandas.tseries.offsets.CustomBusinessDay#

class pandas.tseries.offsets.CustomBusinessDay#

DateOffset 子类表示可能是 n 个自定义工作日的偏移量。

在 CustomBusinessDay 中,我们可以使用自定义的周掩码、假期和日历。

参数:
nint, 默认 1

表示的天数。

normalizebool, 默认为 False

在生成日期范围之前,将开始/结束日期标准化为午夜。

weekmaskstr, 默认值 ‘Mon Tue Wed Thu Fri’

有效工作日的周掩码,传递给 numpy.busdaycalendar

假期列表

要从有效工作日集合中排除的日期列表/数组,传递给 numpy.busdaycalendar

日历np.busdaycalendar

日历以进行集成。

offsettimedelta, 默认 timedelta(0)

要应用的时间偏移。

示例

在下面的例子中,默认参数给出了下一个工作日。

>>> ts = pd.Timestamp(2022, 8, 5, 16)
>>> ts + pd.offsets.CustomBusinessDay()
Timestamp('2022-08-08 16:00:00')

工作日可以通过 weekmask 参数指定。要将返回的 datetime 对象转换为其字符串表示形式,在下一个示例中使用了 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')

属性

基础

返回调用偏移对象的一个副本,其中 n=1 且所有其他属性相同。

日历

freqstr

返回一个表示频率的字符串。

节假日

kwds

返回一个包含偏移额外参数的字典。

n

名称

返回一个表示基本频率的字符串。

纳秒

返回一个整数,表示固定频率的总纳秒数。

normalize

偏移量

self._offset 的别名。

rule_code

返回一个表示基本频率的字符串。

weekmask

方法

复制()

返回频率的副本。

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)

返回布尔值,判断一个时间戳是否发生在年初。

回滚(dt)

如果不在偏移上,则将提供的日期向后滚动到下一个偏移。

rollforward(dt)

如果不在偏移上,则将提供的日期向前滚动到下一个偏移。