pandas.DatetimeIndex.round
- DatetimeIndex.round(*args, **kwargs)[source]
-
Округление данных до указанного уровня freq.
- Параметры
-
- freq:строка или смещение
-
Уровень частоты, до которого следует округлить индекс. Должен быть фиксированной частотой, например, ‘S’ (секунда), а не ‘ME’ (конец месяца). Список возможных значений freq см. в псевдонимах частоты.
- ambiguous:'infer', булевый массив, 'NaT', по умолчанию 'raise'
-
Актуально только для DatetimeIndex:
‘infer’ попытается определить часы перехода к летнему времени на основе порядка
булевый массив, где True обозначает время летнего времени, а False - время вне летнего времени (обратите внимание, что этот флаг применим только для неоднозначных моментов времени)
‘NaT’ вернет NaT, если есть неоднозначные моменты времени
‘raise’ вызовет AmbiguousTimeError, если есть неоднозначные моменты времени.
- nonexistent:'shift_forward', 'shift_backward', 'NaT', timedelta, по умолчанию 'raise'
-
Несуществующее время не существует в определенном часовом поясе, когда часы переведены вперед из-за перехода на летнее время.
‘shift_forward’ переместит несуществующее время вперед к ближайшему существующему времени
‘shift_backward’ переместит несуществующее время назад к ближайшему существующему времени
‘NaT’ вернет NaT, если есть несуществующие моменты времени
объекты timedelta сместят несуществующие моменты времени на timedelta
‘raise’ вызовет NonExistentTimeError, если есть несуществующие моменты времени.
- Возвращает
-
- DatetimeIndex, TimedeltaIndex или Series
-
Индекс того же типа для DatetimeIndex или TimedeltaIndex или Series с тем же индексом для Series.
- Возбуждает
-
- ValueError, если freq не может быть преобразован.
Примечания
Если временные метки имеют часовой пояс, округление будет выполняться относительно местного времени («стенные») и перелокализовано в тот же часовой пояс. При округлении вблизи перехода на летнее время используйте
nonexistentиambiguous, чтобы контролировать поведение перелокализации.Примеры
DatetimeIndex
>>> rng = pd.date_range('1/1/2018 11:59:00', periods=3, freq='min') >>> rng DatetimeIndex(['2018-01-01 11:59:00', '2018-01-01 12:00:00', '2018-01-01 12:01:00'], dtype='datetime64[ns]', freq='T') >>> rng.round('H') DatetimeIndex(['2018-01-01 12:00:00', '2018-01-01 12:00:00', '2018-01-01 12:00:00'], dtype='datetime64[ns]', freq=None)Series
>>> pd.Series(rng).dt.round("H") 0 2018-01-01 12:00:00 1 2018-01-01 12:00:00 2 2018-01-01 12:00:00 dtype: datetime64[ns]При округлении вблизи перехода на летнее время используйте
ambiguousилиnonexistent, чтобы контролировать, как временная метка должна быть перелокализована.>>> rng_tz = pd.DatetimeIndex(["2021-10-31 03:30:00"], tz="Europe/Amsterdam")
>>> rng_tz.floor("2H", ambiguous=False) DatetimeIndex(['2021-10-31 02:00:00+01:00'], dtype='datetime64[ns, Europe/Amsterdam]', freq=None)>>> rng_tz.floor("2H", ambiguous=True) DatetimeIndex(['2021-10-31 02:00:00+02:00'], dtype='datetime64[ns, Europe/Amsterdam]', freq=None)
© 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.DatetimeIndex.round.html