pandas.TimedeltaIndex.ceil#

TimedeltaIndex.ceil(*args, **kwargs)[источник]#

Выполняет операцию округления вверх для данных до указанной freq.

Параметры:
freqstr или Offset

Уровень частоты, до которого округляется индекс. Должен быть фиксированной частотой, например 'S' (секунда), а не 'ME' (конец месяца). См. псевдонимы частоты для списка возможных freq значения.

неоднозначный‘infer’, bool-ndarray, ‘NaT’, по умолчанию ‘raise’

Актуально только для DatetimeIndex:

  • 'infer' попытается определить часы перехода на летнее время на основе порядка

  • bool-ndarray, где True означает время летнего времени, False обозначает время не летнего времени (обратите внимание, что этот флаг применим только для неоднозначных времён)

  • ‘NaT’ вернет NaT там, где есть неоднозначные времена

  • 'raise' вызовет AmbiguousTimeError, если есть неоднозначные времена.

несуществующий'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='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)