polars.date_ranges#
- polars.date_ranges(
 - start: date | datetime | IntoExprColumn,
 - end: date | datetime | IntoExprColumn,
 - interval: str | timedelta = '1d',
 - *,
 - closed: ClosedInterval = 'both',
 - time_unit: TimeUnit | None = None,
 - time_zone: str | None = None,
 - eager: Literal[False] = False,
 - polars.date_ranges(
 - start: date | datetime | IntoExprColumn,
 - end: date | datetime | IntoExprColumn,
 - interval: str | timedelta = '1d',
 - *,
 - closed: ClosedInterval = 'both',
 - time_unit: TimeUnit | None = None,
 - time_zone: str | None = None,
 - eager: Literal[True],
 - polars.date_ranges(
 - start: date | datetime | IntoExprColumn,
 - end: date | datetime | IntoExprColumn,
 - interval: str | timedelta = '1d',
 - *,
 - closed: ClosedInterval = 'both',
 - time_unit: TimeUnit | None = None,
 - time_zone: str | None = None,
 - eager: bool,
 Create a column of date ranges.
- Parameters:
 - start
 Lower bound of the date range.
- end
 Upper bound of the date range.
- interval
 Interval of the range periods, specified as a Python
timedeltaobject or using the Polars duration string language (see “Notes” section below).- closed{‘both’, ‘left’, ‘right’, ‘none’}
 Define which sides of the range are closed (inclusive).
- time_unit{None, ‘ns’, ‘us’, ‘ms’}
 Time unit of the resulting
Datetimedata type. Only takes effect if the output column is of typeDatetime.- time_zone
 Time zone of the resulting
Datetimedata type. Only takes effect if the output column is of typeDatetime.- eager
 Evaluate immediately and return a
Series. If set toFalse(default), return an expression instead.
- Returns:
 - Expr or Series
 Column of data type
List(Date)orList(Datetime).
Notes
intervalis created according to the following string language:1ns (1 nanosecond)
1us (1 microsecond)
1ms (1 millisecond)
1s (1 second)
1m (1 minute)
1h (1 hour)
1d (1 calendar day)
1w (1 calendar week)
1mo (1 calendar month)
1q (1 calendar quarter)
1y (1 calendar year)
Or combine them: “3d12h4m25s” # 3 days, 12 hours, 4 minutes, and 25 seconds
By “calendar day”, we mean the corresponding time on the next day (which may not be 24 hours, due to daylight savings). Similarly for “calendar week”, “calendar month”, “calendar quarter”, and “calendar year”.
Examples
>>> from datetime import date >>> df = pl.DataFrame( ... { ... "start": [date(2022, 1, 1), date(2022, 1, 2)], ... "end": date(2022, 1, 3), ... } ... ) >>> df.with_columns(pl.date_ranges("start", "end")) shape: (2, 3) ┌────────────┬────────────┬───────────────────────────────────┐ │ start ┆ end ┆ date_range │ │ --- ┆ --- ┆ --- │ │ date ┆ date ┆ list[date] │ ╞════════════╪════════════╪═══════════════════════════════════╡ │ 2022-01-01 ┆ 2022-01-03 ┆ [2022-01-01, 2022-01-02, 2022-01… │ │ 2022-01-02 ┆ 2022-01-03 ┆ [2022-01-02, 2022-01-03] │ └────────────┴────────────┴───────────────────────────────────┘