polars.Series.dt.round
-
Разбивает диапазон дат/даты и времени на интервалы.
- Каждая дата/дата и время в первой половине интервала сопоставляется с началом своего интервала.
- Каждая дата/дата и время во второй половине интервала сопоставляется с концом своего интервала.
- Точки, находящиеся ровно посередине, сопоставляются с началом своего интервала.
Неоднозначные результаты локализуются с использованием смещения DST исходной временной метки — например, округление
'2022-11-06 01:20:00 CST'на'1h'приводит к'2022-11-06 01:00:00 CST', тогда как округление'2022-11-06 01:20:00 CDT'на'1h'приводит к'2022-11-06 01:00:00 CDT'.- Параметры:
-
- every
-
Начало каждого интервала и его длительность
- Возвращает:
-
- Series
-
Series типа данных
DateилиDatetime.
См. также
-
Series.dt.truncate -
Сопоставляет с началом интервала.
Примечания
Аргумент
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 >>> start = datetime(2001, 1, 1) >>> stop = datetime(2001, 1, 2) >>> s = pl.datetime_range( ... start, stop, 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.round("1h") shape: (9,) Series: 'datetime' [datetime[μs]] [ 2001-01-01 00:00:00 2001-01-01 03:00:00 2001-01-01 06:00:00 2001-01-01 08:00:00 2001-01-01 11:00:00 2001-01-01 14:00:00 2001-01-01 17:00:00 2001-01-01 19:00:00 2001-01-01 22:00:00 ] >>> round_str = s.dt.round("1h") >>> round_td = s.dt.round(timedelta(hours=1)) >>> round_str.equals(round_td) True>>> start = datetime(2001, 1, 1) >>> stop = datetime(2001, 1, 1, 1) >>> s = pl.datetime_range(start, stop, "10m", eager=True).alias("datetime") >>> s.dt.round("30m") shape: (7,) Series: 'datetime' [datetime[μs]] [ 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 2001-01-01 01:00:00 ]
Series.dt.round(
every: str | dt.timedelta | IntoExprColumn,
) → Series
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/series/api/polars.Series.dt.round.html