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