Spec-Zone.ru › pandas 1

pandas.Timestamp.ceil

Timestamp.ceil(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’

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

  • ‘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='T') # minute
Timestamp('2020-03-14 15:33:00')
>>> ts.ceil(freq='S') # seconds
Timestamp('2020-03-14 15:32:53')
>>> ts.ceil(freq='U') # microseconds
Timestamp('2020-03-14 15:32:52.192549')

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

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

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

>>> ts.ceil(freq='1H30T')
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/1.5.0/reference/api/pandas.Timestamp.ceil.html

Spec-Zone.ru

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