polars.Expr.cumulative_eval#
- Expr.cumulative_eval( ) Self [source]#
Run an expression over a sliding window that increases 1 slot every iteration.
- Parameters:
- expr
Expression to evaluate
- min_periods
Number of valid values there should be in the window before the expression is evaluated. valid values = length - null_count
- parallel
Run in parallel. Don’t do this in a groupby or another operation that already has much parallelization.
Warning
This functionality is experimental and may change without it being considered a breaking change.
This can be really slow as it can have O(n^2) complexity. Don’t use this for operations that visit all elements.
Examples
>>> df = pl.DataFrame({"values": [1, 2, 3, 4, 5]}) >>> df.select( ... [ ... pl.col("values").cumulative_eval( ... pl.element().first() - pl.element().last() ** 2 ... ) ... ] ... ) shape: (5, 1) ┌────────┐ │ values │ │ --- │ │ f64 │ ╞════════╡ │ 0.0 │ │ -3.0 │ │ -8.0 │ │ -15.0 │ │ -24.0 │ └────────┘