Spec-Zone.ru › pandas 2

pandas.tseries.offsets.CustomBusinessDay

classpandas.tseries.offsets.CustomBusinessDay

Подкласс DateOffset, представляющий возможно n пользовательских рабочих дней.

В CustomBusinessDay можно использовать пользовательскую маску недели, праздничные дни и календарь.

Параметры:
n:int, по умолчанию 1

Количество дней.

normalize:bool, по умолчанию False

Нормализовать даты начала/окончания до полуночи перед генерацией диапазона дат.

weekmask:str, по умолчанию ‘Mon Tue Wed Thu Fri’

Маска недели для допустимых рабочих дней, передается в numpy.busdaycalendar.

holidays:list

Список/массив дат, которые нужно исключить из набора допустимых рабочих дней, передаётся в numpy.busdaycalendar.

calendar:np.busdaycalendar

Календарь для интеграции.

offset:timedelta, по умолчанию 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')

Атрибуты

base

Возвращает копию вызываемого объекта смещения с n=1 и всеми другими атрибутами равными.

calendar

freqstr

Возвращает строку, представляющую частоту.

holidays

kwds

Возвращает словарь дополнительных параметров для смещения.

n

name

Возвращает строку, представляющую базовую частоту.

nanos

normalize

offset

Псевдоним для self._offset.

rule_code

weekmask

Методы

copy()

Возвращает копию частоты.

is_anchored()

(УСТАРЕЛО) Возвращает булево значение, является ли частота единичной частотой (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)

Прокручивает предоставленную дату вперед до следующего смещения только в том случае, если она не находится на смещении.

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.tseries.offsets.CustomBusinessDay.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API