Spec-Zone.ru › pandas 1

pandas.Timestamp.floor

Timestamp.floor(freq, ambiguous='raise', nonexistent='raise')

Возвращает новый объект Timestamp, округлённый до указанного разрешения.

Параметры
freq:строка

Строка, указывающая разрешение округления.

ambiguous:логическое значение или {‘raise’, ‘NaT’}, по умолчанию ‘raise’

Поведение определяется следующим образом:

  • Логическое значение содержит флаги, определяющие, является ли время летним или нет (обратите внимание, что этот флаг применим только к неоднозначным датам перехода на летнее время).

  • ‘NaT’ вернёт NaT для неоднозначного времени.

  • ‘raise’ вызовет AmbiguousTimeError для неоднозначного времени.

nonexistent:{‘raise’, ‘shift_forward’, ‘shift_backward, ‘NaT’, timedelta}, по умолчанию ‘raise’

Несуществующее время не существует в определённой временной зоне, когда часы перевели вперёд из-за перехода на летнее время.

  • ‘shift_forward’ сдвинет несуществующее время вперёд к ближайшему существующему времени.

  • ‘shift_backward’ сдвинет несуществующее время назад к ближайшему существующему времени.

  • ‘NaT’ вернёт NaT, где есть несуществующие времена.

  • Объекты timedelta сдвинут несуществующие времена на указанное значение timedelta.

  • ‘raise’ вызовет NonExistentTimeError, если есть несуществующие времена.

Исключения
ValueError, если freq невозможно преобразовать.

Примечания

Если у объекта Timestamp есть временная зона, округление будет происходить относительно локального времени («стенных» часов) и пере-локализовано в ту же временную зону. При округление около перехода на летнее время, используйте nonexistent и ambiguous для управления поведением пере-локализации.

Примеры

Создание объекта timestamp:

>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')

Timestamp можно округлить с использованием различных единиц частоты:

>>> ts.floor(freq='H') # hour
Timestamp('2020-03-14 15:00:00')
>>> ts.floor(freq='T') # minute
Timestamp('2020-03-14 15:32:00')
>>> ts.floor(freq='S') # seconds
Timestamp('2020-03-14 15:32:52')
>>> ts.floor(freq='N') # nanoseconds
Timestamp('2020-03-14 15:32:52.192548651')

freq также может быть кратным единице, например, ‘5T’ (т.е. 5 минут):

>>> ts.floor(freq='5T')
Timestamp('2020-03-14 15:30:00')

или комбинацией нескольких единиц, например, ‘1H30T’ (т.е. 1 час и 30 минут):

>>> ts.floor(freq='1H30T')
Timestamp('2020-03-14 15:00:00')

Аналогично для pd.NaT:

>>> pd.NaT.floor()
NaT

При округление около перехода на летнее время, используйте ambiguous или nonexistent для управления тем, как timestamp должен быть пере-локализован.

>>> ts_tz = pd.Timestamp("2021-10-31 03:30:00").tz_localize("Europe/Amsterdam")
>>> ts_tz.floor("2H", ambiguous=False)
Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
>>> ts_tz.floor("2H", ambiguous=True)
Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')

© 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/1.5.0/reference/api/pandas.Timestamp.floor.html

Spec-Zone.ru

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