polars.datetime_ranges#
- polars.datetime_ranges(
- start: datetime | date | IntoExprColumn,
- end: datetime | date | IntoExprColumn,
- interval: str | timedelta = '1d',
- *,
- closed: ClosedInterval = 'both',
- time_unit: TimeUnit | None = None,
- time_zone: str | None = None,
- eager: bool = False,
创建一个日期时间范围的列。
- Parameters:
- start
日期时间范围的下限。
- end
日期时间范围的上限。
- interval
范围周期的时间间隔,指定为Python
timedelta对象 或使用Polars持续时间字符串语言(请参阅下面的“注释”部分)。- closed{‘both’, ‘left’, ‘right’, ‘none’}
定义范围的哪些边是闭合的(包含的)。
- time_unit{None, ‘ns’, ‘us’, ‘ms’}
结果
Datetime数据类型的时间单位。- time_zone
生成的
Datetime数据类型的时区。- eager
立即评估并返回一个
Series。 如果设置为False(默认),则返回一个表达式。
- Returns:
- Expr or Series
数据类型为
List(Datetime)的列。
注释
interval是根据以下字符串语言创建的: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 datetime >>> df = pl.DataFrame( ... { ... "start": [datetime(2022, 1, 1), datetime(2022, 1, 2)], ... "end": datetime(2022, 1, 3), ... } ... ) >>> with pl.Config(fmt_str_lengths=100): ... df.select(datetime_range=pl.datetime_ranges("start", "end")) shape: (2, 1) ┌─────────────────────────────────────────────────────────────────┐ │ datetime_range │ │ --- │ │ list[datetime[μs]] │ ╞═════════════════════════════════════════════════════════════════╡ │ [2022-01-01 00:00:00, 2022-01-02 00:00:00, 2022-01-03 00:00:00] │ │ [2022-01-02 00:00:00, 2022-01-03 00:00:00] │ └─────────────────────────────────────────────────────────────────┘