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