pandas.Timestamp.round#
- Timestamp.round(freq, неоднозначный='raise', несуществующий='raise')#
Округлить Timestamp до указанного разрешения.
- Параметры:
- freqstr
Строка частоты, указывающая разрешение округления.
- неоднозначныйbool или {'raise', 'NaT'}, по умолчанию 'raise'
Поведение следующее:
bool содержит флаги для определения, является ли время летним (DST) или нет (примечание: этот флаг применим только для неоднозначных осенних дат DST).
'NaT' вернёт NaT для неоднозначного времени.
'raise' вызовет AmbiguousTimeError для неоднозначного времени.
- несуществующий{‘raise’, ‘shift_forward’, ‘shift_backward, ‘NaT’, timedelta}, по умолчанию ‘raise’
Несуществующее время не существует в определенном часовом поясе, где часы перевели вперед из-за летнего времени.
'shift_forward' сдвинет несуществующее время вперед до ближайшего существующего времени.
'shift_backward' сдвинет несуществующее время назад к ближайшему существующему времени.
‘NaT’ вернет NaT там, где есть несуществующие времена.
объекты timedelta будут сдвигать несуществующие времена на timedelta.
'raise' вызовет ошибку NonExistentTimeError, если есть несуществующие времена.
- Возвращает:
- новый Timestamp, округлённый до заданного разрешения freq
- Вызывает:
- ValueError, если частоту нельзя преобразовать
Примечания
Если Timestamp имеет часовой пояс, округление будет происходить относительно локального («настенного») времени и повторно локализовано в тот же часовой пояс. При округлении вблизи перехода на летнее время используйте
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')