Spec-Zone.ru › Polars

polars.Series.dt.truncate

Series.dt.truncate(
    every: str | dt.timedelta | IntoExprColumn,
) → Series

Разбивает диапазон дат/даты и времени на интервалы.

Каждая дата/дата и время сопоставляется с началом своего интервала с использованием соответствующей локальной даты и времени. Обратите внимание:

  • Недельные интервалы начинаются в понедельник.
  • Все остальные интервалы начинаются от эпохи Unix (1970-01-01).
  • Неоднозначные результаты локализуются с использованием смещения DST исходной временной метки — например, усечение '2022-11-06 01:30:00 CST' с шагом '1h' дает '2022-11-06 01:00:00 CST', тогда как усечение '2022-11-06 01:30:00 CDT' с шагом '1h' дает '2022-11-06 01:00:00 CDT'.
Параметры:
every

Размер каждого интервала.

Возвращает:
Series

Series типа данных Date или Datetime.

См. также

Series.dt.round

Сопоставляет ближайшему интервалу.

Примечания

Аргумент every задается с помощью следующего строкового синтаксиса:

  • 1ns (1 наносекунда)
  • 1us (1 микросекунда)
  • 1ms (1 миллисекунда)
  • 1s (1 секунда)
  • 1m (1 минута)
  • 1h (1 час)
  • 1d (1 календарный день)
  • 1w (1 календарная неделя)
  • 1mo (1 календарный месяц)
  • 1q (1 календарный квартал)
  • 1y (1 календарный год)

Под «календарным днем» подразумевается соответствующее время следующего дня (который может длиться не 24 часа из-за перехода на летнее время). То же относится к «календарной неделе», «календарному месяцу», «календарному кварталу» и «календарному году».

Примеры

>>> from datetime import timedelta, datetime
>>> s = pl.datetime_range(
...     datetime(2001, 1, 1),
...     datetime(2001, 1, 2),
...     timedelta(minutes=165),
...     eager=True,
... ).alias("datetime")
>>> s
shape: (9,)
Series: 'datetime' [datetime[μs]]
[
    2001-01-01 00:00:00
    2001-01-01 02:45:00
    2001-01-01 05:30:00
    2001-01-01 08:15:00
    2001-01-01 11:00:00
    2001-01-01 13:45:00
    2001-01-01 16:30:00
    2001-01-01 19:15:00
    2001-01-01 22:00:00
]
>>> s.dt.truncate("1h")
shape: (9,)
Series: 'datetime' [datetime[μs]]
[
    2001-01-01 00:00:00
    2001-01-01 02:00:00
    2001-01-01 05:00:00
    2001-01-01 08:00:00
    2001-01-01 11:00:00
    2001-01-01 13:00:00
    2001-01-01 16:00:00
    2001-01-01 19:00:00
    2001-01-01 22:00:00
]
>>> s = pl.datetime_range(
...     datetime(2001, 1, 1), datetime(2001, 1, 1, 1), "10m", eager=True
... ).alias("datetime")
>>> s
shape: (7,)
Series: 'datetime' [datetime[μs]]
[
        2001-01-01 00:00:00
        2001-01-01 00:10:00
        2001-01-01 00:20:00
        2001-01-01 00:30:00
        2001-01-01 00:40:00
        2001-01-01 00:50:00
        2001-01-01 01:00:00
]
>>> s.dt.truncate("30m")
shape: (7,)
Series: 'datetime' [datetime[μs]]
[
        2001-01-01 00:00:00
        2001-01-01 00:00:00
        2001-01-01 00:00:00
        2001-01-01 00:30:00
        2001-01-01 00:30:00
        2001-01-01 00:30:00
        2001-01-01 01:00:00
]

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/series/api/polars.Series.dt.truncate.html

Spec-Zone.ru

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