Прокат поляров по опции не разрешен?Python

Программы на Python
Ответить
Anonymous
 Прокат поляров по опции не разрешен?

Сообщение Anonymous »

У меня есть фрейм данных типа:

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

import polars as pl

df = pl.LazyFrame({"day": [1,2,4,5,2,3,5,6], 'type': ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'], "value": [1, 0, 3, 4, 2, 2, 0, 1]})

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

shape: (8, 3)
┌─────┬──────┬───────┐
│ day ┆ type ┆ value │
│ --- ┆ ---  ┆ ---   │
│ i64 ┆ str  ┆ i64   │
╞═════╪══════╪═══════╡
│ 1   ┆ a    ┆ 1     │
│ 2   ┆ a    ┆ 0     │
│ 4   ┆ a    ┆ 3     │
│ 5   ┆ a    ┆ 4     │
│ 2   ┆ b    ┆ 2     │
│ 3   ┆ b    ┆ 2     │
│ 5   ┆ b    ┆ 0     │
│ 6   ┆ b    ┆ 1     │
└─────┴──────┴───────┘
Я пытаюсь создать переменную скользящей суммы, суммирующую для каждого отдельного «типа» значения в двухдневном окне. В идеале результирующий набор данных должен быть следующим:

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

shape: (8, 4)
┌─────┬──────┬───────┬─────────────┐
│ day ┆ type ┆ value ┆ rolling_sum │
│ --- ┆ ---  ┆ ---   ┆ ---         │
│ i64 ┆ str  ┆ i64   ┆ i64         │
╞═════╪══════╪═══════╪═════════════╡
│ 1   ┆ a    ┆ 1     ┆ 1           │
│ 2   ┆ a    ┆ 0     ┆ 1           │
│ 4   ┆ a    ┆ 3     ┆ 3           │
│ 5   ┆ a    ┆ 4     ┆ 7           │
│ 2   ┆ b    ┆ 2     ┆ 2           │
│ 3   ┆ b    ┆ 2     ┆ 4           │
│ 5   ┆ b    ┆ 0     ┆ 0           │
│ 6   ┆ b    ┆ 1     ┆ 1           │
└─────┴──────┴───────┴─────────────┘
Я попробовал использовать следующий код:

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

df = df.with_columns(pl.col("value")
.rolling(index_column="day", by="type", period="2i")
.sum().alias("rolling_sum"))
но я получаю сообщение об ошибке: «TypeError:rolling() получил неожиданный аргумент ключевого слова 'by'».
Не могли бы вы помочь мне это исправить?>

Подробнее здесь: https://stackoverflow.com/questions/782 ... ot-allowed
Ответить

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

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

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

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

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