Spec-Zone.ru › pandas 2

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 и всеми другими атрибутами равными.

freqstr

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

kwds

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

n

name

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

nanos

normalize

rule_code

Методы

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.DateOffset.html

Spec-Zone.ru

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