polars.Series.dt.round#

Series.dt.round(every: str | dt.timedelta | IntoExprColumn) Series[source]#

将日期/日期时间范围划分为桶。

警告

此功能被视为不稳定。它可能会在任何时候更改,而不被视为破坏性更改。

  • 间隔前半部分的每个日期/日期时间 被映射到其桶的开始。

  • 间隔后半部分的每个日期/日期时间 被映射到其桶的末尾。

  • 中间点被映射到其区间的起点。

使用原始时间戳的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'

Parameters:
every

每个间隔的开始和周期长度

Returns:
Series

数据类型为 DateDatetime 的系列。

注释

every 参数是使用以下字符串语言创建的:

  • 1纳秒 (1 纳秒)

  • 1微秒 (1 微秒)

  • 1毫秒 (1 毫秒)

  • 1秒 (1 秒)

  • 1分钟 (1 minute)

  • 1小时 (1小时)

  • 1d (1个日历日)

  • 1w (1个日历周)

  • 1个月 (1个日历月)

  • 1q (1个日历季度)

  • 1年 (1个日历年)

这些字符串可以组合:

  • 3d12h4m25s # 3天12小时4分钟25秒

“日历日”指的是第二天的相应时间(由于夏令时,可能不是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
]