У меня есть что-то похожее на эту таблицу:
Код: Выделить всё
import polars as pl
df = pl.from_repr("""
┌─────┬────────────┬───────┐
│ id ┆ date ┆ sales │
│ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ f64 │
╞═════╪════════════╪═══════╡
│ 1 ┆ 2023-01-01 ┆ 10.0 │
│ 1 ┆ 2023-02-01 ┆ 20.0 │
│ 1 ┆ 2023-03-01 ┆ 30.0 │
│ 1 ┆ 2023-05-01 ┆ 40.0 │
│ 2 ┆ 2023-02-01 ┆ 50.0 │
│ 2 ┆ 2023-03-01 ┆ 60.6 │
│ 2 ┆ 2023-04-01 ┆ 70.2 │
│ 3 ┆ 2023-01-01 ┆ 80.5 │
│ 3 ┆ 2023-02-01 ┆ 90.0 │
└─────┴────────────┴───────┘
""")
кроме того, я хочу заполнить столбец продаж значением 0, а столбец идентификатора - соответствующим идентификатором, поэтому это выглядит так:
Код: Выделить всё
┌─────┬────────────┬───────┐
│ id ┆ date ┆ sales │
│ --- ┆ --- ┆ --- │
│ i32 ┆ date ┆ f64 │
╞═════╪════════════╪═══════╡
│ 1 ┆ 2023-01-01 ┆ 10.0 │
│ 1 ┆ 2023-01-02 ┆ 20.0 │
│ 1 ┆ 2023-01-03 ┆ 30.0 │
│ 1 ┆ 2023-01-04 ┆ 0.0 │
│ 1 ┆ 2023-01-05 ┆ 40.0 │
│ 2 ┆ 2023-01-01 ┆ 0.0 │
│ 2 ┆ 2023-01-02 ┆ 50.0 │
│ 2 ┆ 2023-01-03 ┆ 60.6 │
│ 2 ┆ 2023-01-03 ┆ 70.2 │
│ 2 ┆ 2023-01-04 ┆ 0.0 │
│ 2 ┆ 2023-01-05 ┆ 0.0 │
│ 3 ┆ 2023-01-01 ┆ 80.5 │
│ 3 ┆ 2023-01-02 ┆ 90.0 │
│ 3 ┆ 2023-01-03 ┆ 0.0 │
│ 3 ┆ 2023-01-04 ┆ 0.0 │
│ 3 ┆ 2023-01-05 ┆ 0.0 │
└─────┴────────────┴───────┘
я пытался создать новый фрейм данных, используя функцию pl.date_range, а затем соединить его с основными данными, используя внешние или перекрестные данные, но безрезультатно, поскольку он не вычисляется по каждому идентификатору.
Может быть, у вас есть идеи, как это сделать?
заранее спасибо за любые ввод!
Подробнее здесь: https://stackoverflow.com/questions/767 ... ith-polars
Мобильная версия