Spec-Zone.ru › pandas 2

pandas.Timestamp.ceil

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

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

Параметры:
freq:str

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

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 сдвинут несуществующее время на указанное смещение.

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

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

Примечания

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

Примеры

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

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

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

>>> ts.ceil(freq='h') # hour
Timestamp('2020-03-14 16:00:00')
>>> ts.ceil(freq='min') # minute
Timestamp('2020-03-14 15:33:00')
>>> ts.ceil(freq='s') # seconds
Timestamp('2020-03-14 15:32:53')
>>> ts.ceil(freq='us') # microseconds
Timestamp('2020-03-14 15:32:52.192549')

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

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

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

>>> ts.ceil(freq='1h30min')
Timestamp('2020-03-14 16:30:00')

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

>>> pd.NaT.ceil()
NaT

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

>>> ts_tz = pd.Timestamp("2021-10-31 01:30:00").tz_localize("Europe/Amsterdam")
>>> ts_tz.ceil("h", ambiguous=False)
Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
>>> ts_tz.ceil("h", 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.ceil.html

Spec-Zone.ru

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