Код: Выделить всё
over("Team")< /code>). < /p>
формула, которую я стремлюсь реализовать, - это примерно так: < /p>
Для каждой строки: < /li>
< /ul>
weighted_goals = 0.8 * goals[n] + 0.2 * (0.8 * goals[n-1] + 0.2 * (0.8 * goals[n-2] ...)
Идея состоит в том, чтобы для Wheesed_goals является рекурсивным расчетом, который учитывает предыдущие значения в целях для каждой команды, с экспоненциальным распадом (или взвешиванием) на каждом шаге.
Чтобы проиллюстрировать, предположить, что у меня есть следующая фрейма:
.
Код: Выделить всё
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]
})
Team
неделя < /th>
цели < /th>
Wheesed_GOALS < /th>
< /tr>
< /thead>
< /td>
1
< /td>
< /td>
< /td>
< /td>
< /td>
< /td>
/> 2 < /td>
< /tr>
a < /td>
2 < /td>
1 < /td>
< /td> * 1 + 0,2 * 2 = 1,2 < /td>
a < /td>
3 < /td>
3 < /td>
0,8 * 3 + 0,2 * (0,8 * 1 + 0,2 * 2) = 2,56 < /td>
< /tr>
b < /td>
< /tr>
< /td /> 1 < /td>
1 < /td>
1 < /td>
< /tr>
b < /td>
2 < /td>
4 < /td>
> 0. 8 0. 8. 3.2 < /td>
< /tr>
b < /td>
3 < /td>
2 < /td>
0,8 * 2 + 0,2 * (0,8 * 4 + 0,2 * 1) = 2,56 < /td>
< /tbody>
< /table> < /div>
Как я могу реализовать эту рекурсивную формулу в полярах? Есть ли эффективный способ достичь этого без использования явного цикла?
Подробнее здесь: https://stackoverflow.com/questions/791 ... another-co