pandas.tseries.offsets.DateOffset
- classpandas.tseries.offsets.DateOffset
-
Стандартный тип приращения даты, используемый для диапазона дат.
Работает точно так же, как и форма с ключевыми словами relativedelta. Обратите внимание, что позиционная форма relativedelata не поддерживается. Использование позиционного аргумента n не рекомендуется — лучше указать n в ключевых словах, но он всё же доступен. n необходим для подклассов DateOffset.
DateOffset работает следующим образом. Каждый временной сдвиг задает множество дат, которые соответствуют DateOffset. Например, Bday определяет это множество как множество дат, которые являются рабочими днями (ПН-ПТ). Чтобы проверить, является ли дата частью множества дат DateOffset, можно использовать метод is_on_offset: dateOffset.is_on_offset(date).
Если дата не соответствует допустимой дате, можно использовать методы rollback и rollforward для сдвига даты к ближайшей допустимой дате до/после даты.
DateOffset можно создать для того, чтобы переместить даты вперёд на заданное число допустимых дат. Например, Bday(2) можно добавить к дате, чтобы переместить её на два рабочих дня вперёд. Если дата не начинается с допустимой даты, сначала она перемещается к допустимой дате. Таким образом, псевдокод выглядит так:
def __add__(date): date = rollback(date) # does nothing if date is valid return date + <n number of periods>
Когда временной сдвиг создаётся для отрицательного числа периодов, дата сначала сдвигается вперёд. Псевдокод выглядит следующим образом:
def __add__(date): date = rollforward(date) # does nothing if date is valid return date + <n number of periods>
Ноль представляет собой проблему. Нужно ли сдвигать вперёд или назад? Мы произвольно выбрали сдвиг вперёд:
date + BDay(0) == BDay.rollforward(date)
Так как 0 немного странно, мы рекомендуем избегать его использования.
Кроме того, добавление DateOffset, указанного в единственном числе для компонента даты, может использоваться для замены определённого компонента временной метки.
- Parameters:
-
- n:int, default 1
-
Количество временных периодов, которые представляет собой сдвиг. Если указано без временного шаблона, по умолчанию это n дней.
- normalize:bool, default False
-
Определяет, нужно ли округлять результат добавления DateOffset до ближайшего полуночи.
- weekday:int {0, 1, …, 6}, default 0
-
Конкретное целое число для дня недели.
0 — понедельник
1 — вторник
2 — среда
3 — четверг
4 — пятница
5 — суббота
6 — воскресенье
Вместо типа Weekday из dateutil.relativedelta можно использовать:
MO — понедельник
TU — вторник
WE — среда
TH — четверг
FR — пятница
SA — суббота
SU — воскресенье.
- **kwds
-
Временной параметр, который добавляется к значению смещения или заменяет его.
Параметры, которые добавляются к смещению (как Timedelta):
years
months
weeks
days
hours
minutes
seconds
milliseconds
microseconds
nanoseconds
Параметры, которые заменяют значение смещения:
year
month
day
weekday
hour
minute
second
microsecond
nanosecond.
См. также
dateutil.relativedelta.relativedelta-
Тип relativedelta предназначен для применения к существующей дате и времени и может заменять определённые компоненты этой даты и времени или представляет интервал времени.
Примеры
>>> from pandas.tseries.offsets import DateOffset >>> ts = pd.Timestamp('2017-01-01 09:10:11') >>> ts + DateOffset(months=3) Timestamp('2017-04-01 09:10:11')>>> ts = pd.Timestamp('2017-01-01 09:10:11') >>> ts + DateOffset(months=2) Timestamp('2017-03-01 09:10:11') >>> ts + DateOffset(day=31) Timestamp('2017-01-31 09:10:11')>>> ts + pd.DateOffset(hour=8) Timestamp('2017-01-01 08:10:11')Атрибуты
baseВозвращает копию объекта вызываемого смещения с n=1 и всеми другими атрибутами равными.
Возвращает строку, представляющую частоту.
Возвращает словарь дополнительных параметров для смещения.
Возвращает строку, представляющую базовую частоту.
Методы
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)Сдвигает предоставленную дату вперёд к следующему смещению только если она не на смещении.
© 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.DateOffset.html