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 и всеми остальными атрибутами равными.
Возвращает строку, представляющую частоту.
Возвращает словарь дополнительных параметров для смещения.
Возвращает строку, представляющую базовую частоту.
Методы
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)Переместить указанную дату вперед к следующему смещению только если она не на смещении.