Заполнение пробелов в датах (повышенная дискретизация) полярамиPython

Программы на Python
Ответить
Anonymous
 Заполнение пробелов в датах (повышенная дискретизация) полярами

Сообщение Anonymous »

У меня есть проблема, которую я пытаюсь решить, но не могу ее понять.
У меня есть что-то похожее на эту таблицу:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»