pandas.Series.dt.ceil
- Series.dt.ceil(*args, **kwargs)[source]
-
Выполнить операцию округления вверх данных до указанного freq.
- Параметры:
-
- freq:str или Offset
-
Уровень частоты, до которого необходимо округлить индекс. Должен быть фиксированной частотой, например, ‘S’ (секунда), а не ‘ME’ (конец месяца). Список возможных значений freq см. в псевдонимах частоты.
- ambiguous:‘infer’, bool-массив, ‘NaT’, по умолчанию ‘raise’
-
Актуально только для DatetimeIndex:
‘infer’ попытается определить часы перехода DST по порядку
bool-массив, где True означает время DST, False — время вне DST (обратите внимание, что этот флаг применим только для неоднозначных времен)
‘NaT’ вернёт NaT, если есть неоднозначные времена
‘raise’ поднимет исключение AmbiguousTimeError, если есть неоднозначные времена.
- nonexistent:‘shift_forward’, ‘shift_backward’, ‘NaT’, timedelta, по умолчанию ‘raise’
-
Временной момент не существует в определенном часовом поясе, когда часы перевели вперёд из-за DST.
‘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='min') >>> rng.ceil('h') DatetimeIndex(['2018-01-01 12:00:00', '2018-01-01 12:00:00', '2018-01-01 13:00:00'], dtype='datetime64[ns]', freq=None)Series
>>> pd.Series(rng).dt.ceil("h") 0 2018-01-01 12:00:00 1 2018-01-01 12:00:00 2 2018-01-01 13:00:00 dtype: datetime64[ns]При округления вблизи перехода к летнему времени, используйте
ambiguousилиnonexistentдля управления тем, как временная метка должна быть переведена.>>> rng_tz = pd.DatetimeIndex(["2021-10-31 01:30:00"], tz="Europe/Amsterdam")
>>> rng_tz.ceil("h", ambiguous=False) DatetimeIndex(['2021-10-31 02:00:00+01:00'], dtype='datetime64[ns, Europe/Amsterdam]', freq=None)>>> rng_tz.ceil("h", 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/2.2.2/reference/api/pandas.Series.dt.ceil.html