pandas.Timestamp.round
- Timestamp.round(freq, ambiguous='raise', nonexistent='raise')
-
Округляет метку времени Timestamp до указанного разрешения.
- Параметры:
-
- freq:строка
-
Строка частоты, указывающая разрешение округления.
- ambiguous:логическое значение или {‘raise’, ‘NaT’}, по умолчанию ‘raise’
-
Поведение следующее:
логическое значение содержит флаги, определяющие, является ли время летним или нет (обратите внимание, что этот флаг применим только к неоднозначным датам перехода на летнее время осенью).
‘NaT’ вернёт NaT для неоднозначного времени.
‘raise’ вызовет AmbiguousTimeError для неоднозначного времени.
- nonexistent:{‘raise’, ‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta}, по умолчанию ‘raise’
-
Несуществующее время не существует в определённой временной зоне, где часы перевели вперёд из-за перехода на летнее время.
‘shift_forward’ переместит несуществующее время вперёд к ближайшему существующему времени.
‘shift_backward’ переместит несуществующее время назад к ближайшему существующему времени.
‘NaT’ вернёт NaT, где есть несуществующие моменты времени.
Объекты timedelta сместят несуществующие моменты времени на указанное значение timedelta.
‘raise’ вызовет NonExistentTimeError, если есть несуществующие моменты времени.
- Возвращаемое значение:
-
- новая метка времени Timestamp, округлённая до заданного разрешения freq
- Исключения:
-
- ValueError, если freq не может быть преобразован
Примечания
Если у метки времени Timestamp есть временная зона, округление произойдёт относительно локального времени (“wall”) и переведётся в ту же временную зону. При округлении вблизи перехода на летнее/зимнее время используйте
nonexistentиambiguous, чтобы контролировать поведение перевода во временную зону.Примеры
Создание объекта метки времени:
>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')Метка времени может быть округлённой с использованием нескольких единиц частоты:
>>> ts.round(freq='h') # hour Timestamp('2020-03-14 16:00:00')>>> ts.round(freq='min') # minute Timestamp('2020-03-14 15:33:00')>>> ts.round(freq='s') # seconds Timestamp('2020-03-14 15:32:52')>>> ts.round(freq='ms') # milliseconds Timestamp('2020-03-14 15:32:52.193000')freqтакже может быть кратным одной единице, например, '5min' (т.е. 5 минут):>>> ts.round(freq='5min') Timestamp('2020-03-14 15:35:00')или комбинацией нескольких единиц, например, '1h30min' (т.е. 1 час и 30 минут):
>>> ts.round(freq='1h30min') Timestamp('2020-03-14 15:00:00')Аналогично для
pd.NaT:>>> pd.NaT.round() NaT
При округлении вблизи перехода на летнее/зимнее время используйте
ambiguousилиnonexistent, чтобы контролировать способ перевода метки времени во временную зону.>>> ts_tz = pd.Timestamp("2021-10-31 01:30:00").tz_localize("Europe/Amsterdam")>>> ts_tz.round("h", ambiguous=False) Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')>>> ts_tz.round("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.round.html