Код: Выделить всё
over("Team")
Формула, которую я собираюсь реализовать, выглядит примерно так:
- Для каждого строка:
Код: Выделить всё
weighted_goals = 0.8 * goals[n] + 0.2 * (0.8 * goals[n-1] + 0.2 * (0.8 * goals[n-2] ...)
Для иллюстрации предположим, что у меня есть следующий DataFrame:
Код: Выделить всё
import polars as pl
data = pl.DataFrame({
"Team": ["A", "A", "A", "B", "B", "B"],
"Week": [1, 2, 3, 1, 2, 3],
"goals": [2, 1, 3, 1, 4, 2]
})
Команда
< th>Цели на неделю
цели
weighted_goals
A
1
2
2
A
2
1
0,8 * 1 + 0,2 * 2 = 1,2
< td>A
3
3
0,8 * 3 + 0,2 * (0,8 * 1 + 0,2 * 2) = 2,56
B
1
1
1
B2
4
0,8 * 4 + 0,2 * 1 = 3,2
B
3
2
0,8 * 2 + 0,2 * (0,8 * 4 + 0,2 * 1) = 2,56
Как реализовать эту рекурсивную формулу в Polars? Есть ли эффективный способ добиться этого без использования явного цикла?
Подробнее здесь: https://stackoverflow.com/questions/791 ... another-co