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 сместят несуществующие времена на заданное количество времени.
‘raise’ вызовет NonExistentTimeError, если существуют несуществующие времена.
- Возвращает
-
- новый объект Timestamp, округлённый до указанного разрешения freq
- Возбуждает
-
- ValueError, если freq нельзя преобразовать
Примечания
Если у Timestamp есть часовой пояс, округление будет происходить относительно местного времени («стенных часов») и переводится в ту же часовую зону. При округлении вблизи перехода на летнее/зимнее время используйте
nonexistentиambiguousдля управления поведением перевода в часовую зону.Примеры
Создайте объект Timestamp:
>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')Timestamp можно округлить с помощью различных единиц частоты:
>>> ts.round(freq='H') # hour Timestamp('2020-03-14 16:00:00')>>> ts.round(freq='T') # minute Timestamp('2020-03-14 15:33:00')>>> ts.round(freq='S') # seconds Timestamp('2020-03-14 15:32:52')>>> ts.round(freq='L') # milliseconds Timestamp('2020-03-14 15:32:52.193000')freqтакже может быть кратным единице, например, '5T' (т.е. 5 минут):>>> ts.round(freq='5T') Timestamp('2020-03-14 15:35:00')или комбинацией нескольких единиц, например, '1H30T' (т.е. 1 час и 30 минут):
>>> ts.round(freq='1H30T') Timestamp('2020-03-14 15:00:00')Аналогично для
pd.NaT:>>> pd.NaT.round() NaT
При округлении вблизи перехода на летнее время используйте
ambiguousилиnonexistentдля управления тем, как Timestamp должен быть переведён в часовую зону.>>> 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/1.5.0/reference/api/pandas.Timestamp.round.html