Python-поляры:rolling_sum, где window_size находится в другом столбцеPython

Программы на Python
Anonymous
Python-поляры:rolling_sum, где window_size находится в другом столбце

Сообщение Anonymous »

Рассмотрим следующий фрейм данных:

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

df = pl.DataFrame(
{
"date": pl.date_range(
pl.date(2023, 2, 1),
pl.date(2023, 2, 5),
interval="1d",
eager=True),
"periods": [2, 2, 2, 1, 1],
"quantity": [10, 12, 14, 16, 18],
"calculate": [22, 26, 30, 16, 18]
}
)
Вычисление столбца — это то, что мне нужно. Это делается с помощью Rolling_sum, где параметр window_size берется из столбца period, а не из фиксированного значения.
Я могу сделать следующее (window_size= 2):

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

df.select(pl.col("quantity").rolling_sum(window_size=2))
Однако при попытке сделать это возникает ошибка:

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

df.select(pl.col("quantity").rolling_sum(window_size=pl.col("periods")))
Это ошибка

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

TypeError: argument 'window_size': 'Expr' object cannot be converted to 'PyString'
Как передать значение window_size на основе другого столбца? Я также рассматривал возможность использования прокрутки, но тоже не смог этого понять.

Подробнее здесь: https://stackoverflow.com/questions/754 ... her-column

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