pandas.tseries.offsets.DateOffset#

класс pandas.tseries.offsets.DateOffset#

Стандартный тип приращения даты, используемый для диапазона дат.

Работает точно так же, как ключевой аргумент формы relativedelta. Обратите внимание, что позиционная форма аргумента relativedelta не поддерживается. Использование ключевого слова n не рекомендуется — лучше указать n в используемых ключевых словах, но независимо от этого оно доступно для вас. n необходимо для подклассов DateOffset.

DateOffset работает следующим образом. Каждый смещение определяет набор дат, которые соответствуют DateOffset. Например, Bday определяет этот набор как набор дат, которые являются рабочими днями (пн-пт). Чтобы проверить, находится ли дата в наборе DateOffset dateOffset, мы можем использовать метод is_on_offset: dateOffset.is_on_offset(date).

Если дата не является допустимой, методы rollback и rollforward могут использоваться для корректировки даты до ближайшей допустимой даты до/после указанной даты.

DateOffsets можно создавать для перемещения дат вперед на заданное количество действительных дат. Например, 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 немного странный, мы рекомендуем избегать его использования.

Кроме того, добавление DateOffsets, указанного в единственном числе компонента даты, может использоваться для замены определенного компонента временной метки.

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

Количество временных периодов, которые представляет смещение. Если указано без временного шаблона, по умолчанию равно n дней.

нормализоватьbool, по умолчанию False

Округлять ли результат сложения DateOffset до предыдущей полуночи.

день неделиint {0, 1, …, 6}, по умолчанию 0

Конкретное целое число для дня недели.

  • 0 — понедельник

  • 1 - это вторник

  • 2 - это среда

  • 3 — это четверг

  • 4 — пятница

  • 5 — суббота

  • 6 - воскресенье

Вместо этого можно использовать тип Weekday из dateutil.relativedelta.

  • MO — понедельник

  • TU - вторник

  • WE - это среда

  • TH — четверг

  • FR — пятница

  • SA — суббота

  • SU — воскресенье.

**kwds

Временной параметр, который добавляет или заменяет значение смещения.

Параметры, которые добавить к смещению (как Timedelta):

  • лет

  • месяцы

  • недели

  • дни

  • часы

  • минуты

  • секунды

  • миллисекунды

  • микросекунды

  • наносекунды

Параметры, которые replace значение смещения:

  • год

  • month

  • day

  • день недели

  • hour

  • минута

  • второй

  • микросекунда

  • наносекунда.

Смотрите также

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)

Переместить указанную дату вперед к следующему смещению только если она не на смещении.