Spec-Zone.ru › pandas 2

pandas.Timestamp.floor

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

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

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

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

ambiguous:bool или {‘raise’, ‘NaT’}, по умолчанию ‘raise’

Поведение следующее:

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

  • ‘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='min') # minute
Timestamp('2020-03-14 15:32:00')
>>> ts.floor(freq='s') # seconds
Timestamp('2020-03-14 15:32:52')
>>> ts.floor(freq='ns') # nanoseconds
Timestamp('2020-03-14 15:32:52.192548651')

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

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

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

>>> ts.floor(freq='1h30min')
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/2.2.2/reference/api/pandas.Timestamp.floor.html

Spec-Zone.ru

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