pandas.Timestamp.ceil#

Timestamp.ceil(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, если есть несуществующие времена.

Вызывает:
ValueError, если частоту невозможно преобразовать.

Примечания

Если Timestamp имеет часовой пояс, округление вверх будет происходить относительно локального («настенного») времени и перелокализовано в тот же часовой пояс. При округлении вверх вблизи перехода на летнее время используйте nonexistent и ambiguous для управления поведением релокализации.

Примеры

Создать объект временной метки:

>>> ts = pd.Timestamp('2020-03-14T15:32:52.192548651')

Временная метка может быть округлена вверх с использованием нескольких единиц частоты:

>>> ts.ceil(freq='h') # hour
Timestamp('2020-03-14 16:00:00')
>>> ts.ceil(freq='min') # minute
Timestamp('2020-03-14 15:33:00')
>>> ts.ceil(freq='s') # seconds
Timestamp('2020-03-14 15:32:53')
>>> ts.ceil(freq='us') # microseconds
Timestamp('2020-03-14 15:32:52.192549')

freq также может быть кратным одной единице, например '5min' (т.е. 5 минут):

>>> ts.ceil(freq='5min')
Timestamp('2020-03-14 15:35:00')

или комбинация нескольких единиц, например ‘1h30min’ (т.е. 1 час и 30 минут):

>>> ts.ceil(freq='1h30min')
Timestamp('2020-03-14 16:30:00')

Аналогично для pd.NaT:

>>> pd.NaT.ceil()
NaT

При округлении вблизи перехода на летнее время используйте ambiguous или nonexistent для управления тем, как должна быть перелокализована временная метка.

>>> ts_tz = pd.Timestamp("2021-10-31 01:30:00").tz_localize("Europe/Amsterdam")
>>> ts_tz.ceil("h", ambiguous=False)
Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
>>> ts_tz.ceil("h", ambiguous=True)
Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')