pandas.tseries.offsets.DateOffset
-
class pandas.tseries.offsets.DateOffset(n=1, normalize=False, **kwds)[source] -
Стандартный тип приращения даты, используемый для диапазона дат.
Работает точно так же, как relativedelta в отношении передаваемых вами ключевых аргументов, использование ключевого слова n не рекомендуется – лучше указать n в используемых вами ключевых словах, но оно всё же доступно. n требуется для подклассов DateOffset.
DateOffets работают следующим образом. Каждый сдвиг задаёт набор дат, соответствующих DateOffset. Например, Bday определяет этот набор как набор дат, которые являются рабочими днями (Пн-Пт). Чтобы проверить, является ли дата частью набора дат DateOffset, можно использовать метод onOffset: dateOffset.onOffset(date).
Если дата не является допустимой, можно использовать методы rollback и rollforward, чтобы переместить дату к ближайшей допустимой дате до/после даты.
DateOffsets можно создать для продвижения дат на заданное количество допустимых дат. Например, Bday(2) можно добавить к дате, чтобы переместить её вперёд на два рабочих дня. Если дата не начинается с допустимой даты, сначала она перемещается на допустимую дату. Таким образом, псевдокод выглядит так:
- def __add__(date):
- date = rollback(date) # ничего не делает, если дата допустима return date + <n количество периодов>
При создании сдвигового смещения для отрицательного количества периодов дата сначала сдвигается вперёд. Псевдокод выглядит так:
- def __add__(date):
- date = rollforward(date) # ничего не делает, если дата допустима return date + <n количество периодов>
Ноль представляет проблему. Должен ли он сдвигаться вперёд или назад? По умолчанию он сдвигается вперёд:
date + BDay(0) == BDay.rollforward(date)
Поскольку 0 немного необычен, мы рекомендуем избегать его использования.
Параметры: -
n : int, default 1 -
Количество временных периодов, которое представляет сдвиг.
-
normalize : bool, default False -
Необходимо ли округлять результат сложения DateOffset до предыдущего полуночи.
- **kwds
-
Временной параметр, который добавляется к значению сдвига или заменяет его.
Параметры, которые добавляются к смещению (например, Timedelta):
- years
- months
- weeks
- days
- hours
- minutes
- seconds
- microseconds
- nanoseconds
Параметры, которые заменяют значение смещения:
- year
- month
- day
- weekday
- hour
- minute
- second
- microsecond
- nanosecond
См. также
Примеры
>>> 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(month=3) Timestamp('2017-03-01 09:10:11')Атрибуты
baseВозвращает копию объекта вызываемого смещения с n=1 и всеми другими атрибутами равными. freqstr kwds name nanos rule_code Методы
apply_indexВекторизованное применение DateOffset к DatetimeIndex, вызывает NotImplentedError для сдвигов без векторизованной реализации. rollback(dt)Откатывает заданную дату назад к следующему смещению только в том случае, если она не на смещении. rollforward(dt)Откатывает заданную дату вперёд к следующему смещению только в том случае, если она не на смещении. __call__ apply copy isAnchored onOffset
© 2008–2012, 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/0.24.2/reference/api/pandas.tseries.offsets.DateOffset.html