Он дает правильный результат, но поскольку он использует map_rows и лямбда-функцию Python, он не так эффективен, как мог бы быть.
Есть ли способ написать это с использованием API собственных выражений Polars?>
In [7]: expected Out[7]: shape: (3, 3) ┌───────┬─────┬────────────┐ │ start ┆ end ┆ sum_values │ │ --- ┆ --- ┆ --- │ │ f64 ┆ f64 ┆ i64 │ ╞═══════╪═════╪════════════╡ │ 1.0 ┆ 2.0 ┆ 4 │ │ 2.0 ┆ 4.5 ┆ 9 │ │ 4.0 ┆ 6.0 ┆ 5 │ └───────┴─────┴────────────┘ [/code] Вот неэффективный способ сделать это, который я придумал, используя map_rows: [code]( df1.with_columns( df1.map_rows( lambda row: df2.filter( pl.col("idx").is_between(row[0], row[1], closed="left") )["values"].sum() )["map"].alias("sum_values") ) ) [/code] Он дает правильный результат, но поскольку он использует map_rows и лямбда-функцию Python, он не так эффективен, как мог бы быть. Есть ли способ написать это с использованием API собственных выражений Polars?>