polars.DataFrame.upsample¶
- DataFrame.upsample(time_column: str, every: str, offset: Optional[str] = None, by: Optional[Union[str, Sequence[str]]] = None, maintain_order: bool = False) polars.internals.frame.DF ¶
Upsample a DataFrame at a regular frequency.
- Parameters
- time_column
time column will be used to determine a date_range. Note that this column has to be sorted for the output to make sense.
- every
interval will start ‘every’ duration
- offset
change the start of the date_range by this offset.
- by
First group by these columns and then upsample for every group
- maintain_order
Keep the ordering predictable. This is slower.
- The `period` and `offset` arguments are created with
- the following string language:
- - 1ns (1 nanosecond)
- - 1us (1 microsecond)
- - 1ms (1 millisecond)
- - 1s (1 second)
- - 1m (1 minute)
- - 1h (1 hour)
- - 1d (1 day)
- - 1w (1 week)
- - 1mo (1 calendar month)
- - 1y (1 calendar year)
- - 1i (1 index count)
- Or combine them:
- “3d12h4m25s” # 3 days, 12 hours, 4 minutes, and 25 seconds
Examples
Upsample a DataFrame by a certain interval.
>>> from datetime import datetime >>> df = pl.DataFrame( ... { ... "time": [ ... datetime(2021, 2, 1), ... datetime(2021, 4, 1), ... datetime(2021, 5, 1), ... datetime(2021, 6, 1), ... ], ... "groups": ["A", "B", "A", "B"], ... "values": [0, 1, 2, 3], ... } ... ) >>> ( ... df.upsample( ... time_column="time", every="1mo", by="groups", maintain_order=True ... ).select(pl.all().forward_fill()) ... ) shape: (7, 3) ┌─────────────────────┬────────┬────────┐ │ time ┆ groups ┆ values │ │ --- ┆ --- ┆ --- │ │ datetime[ns] ┆ str ┆ i64 │ ╞═════════════════════╪════════╪════════╡ │ 2021-02-01 00:00:00 ┆ A ┆ 0 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-03-01 00:00:00 ┆ A ┆ 0 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-04-01 00:00:00 ┆ A ┆ 0 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-05-01 00:00:00 ┆ A ┆ 2 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-04-01 00:00:00 ┆ B ┆ 1 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-05-01 00:00:00 ┆ B ┆ 1 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ 2021-06-01 00:00:00 ┆ B ┆ 3 │ └─────────────────────┴────────┴────────┘