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