Код: Выделить всё
weight_vec = pl.Series("weights", [0.125, 0.0625, 0.03125])
Код: Выделить всё
df = pl.DataFrame(
{
"row_index": [0, 1, 2, 3, 4],
"var1": [1, 2, 3, 4, 5],
"var2": [6, 7, 8, 9, 10],
}
)
< /code>
Размер (количество наблюдений) для этих переменных может быть очень большим (десятки миллионов строк). < /p>
Я хотел бы: < /p>
[list]
[*] Для каждого переменного и каждую наблюдение x_i, где я есть nd index [0, 4] Sumproduct всех прошлых значений n
[*] Мы можем предположить, что высота данных данных всегда больше или равна длине веса вектора, чтобы получить, по крайней мере, один допустимый результат. /> < /ul>
Полученный DataFrame должен выглядеть следующим образом: < /p>
shape: (5, 3)
┌───────────┬─────────┬─────────┐
│ row_index ┆ var1 ┆ var2 │
│ --- ┆ --- ┆ --- │
│ i64 ┆ f64 ┆ f64 │
╞═══════════╪═════════╪═════════╡
│ 0 ┆ 0.34375 ┆ 1.4375 │
│ 1 ┆ 0.5625 ┆ 1.65625 │
│ 2 ┆ 0.78125 ┆ 1.875 │
│ 3 ┆ null ┆ null │
│ 4 ┆ null ┆ null │
└───────────┴─────────┴─────────┘
< /code>
Numeric Caldulations < /strong>: < /p>
x_0_var1: (0,125 * 1 + 0,0625 * 2 + 0,03125 * 3 = 0,34375) < /li>
x_2_var2: 0,125) < /li>
x_2_var2: 0,125) < /li>
x_2_var2: 0,125) < /li>
x_2_var2: 0,34375) < /li>
x_2125 * 0,03125 * 10 = 1,875)
[/list]
Я ищу эффективную память, векторизованную полярную работу для достижения таких результатов.
Подробнее здесь: https://stackoverflow.com/questions/794 ... hon-polars