Spec-Zone.ru › pandas 1

pandas.DatetimeIndex.floor

DatetimeIndex.floor(*args, **kwargs)[source]

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

Параметры
freq:строка или сдвиг

Уровень частоты для округления вниз индекса. Должна быть фиксированная частота, например, ‘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 нельзя преобразовать.

Примечания

Если временные метки имеют временную зону, округление вниз произойдёт относительно локального («настенного») времени и будет пере-локализовано в ту же временную зону. При округлениях рядом с переходом DST, используйте 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.floor('H')
DatetimeIndex(['2018-01-01 11:00:00', '2018-01-01 12:00:00',
               '2018-01-01 12:00:00'],
              dtype='datetime64[ns]', freq=None)

Series

>>> pd.Series(rng).dt.floor("H")
0   2018-01-01 11:00:00
1   2018-01-01 12:00:00
2   2018-01-01 12:00:00
dtype: datetime64[ns]

При округлениях рядом с переходом DST используйте 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.floor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API