polars.apply#
- polars.apply(exprs: Sequence[str | Expr], function: Callable[[Sequence[Series]], Series | Any], return_dtype: PolarsDataType | None = None, *, returns_scalar: bool = True) Expr [source]#
Apply a custom/user-defined function (UDF) in a GroupBy context.
Depending on the context it has the following behavior:
- Select
Don’t use apply, use map
- GroupBy
expected type f: Callable[[Series], Series] Applies a python function over each group.
- Parameters:
- exprs
Input Series to f
- function
Function to apply over the input
- return_dtype
dtype of the output Series
- returns_scalar
If the function returns a single scalar as output.
- Returns:
- Expr
Examples
>>> df = pl.DataFrame( ... { ... "a": [7, 2, 3, 4], ... "b": [2, 5, 6, 7], ... } ... ) >>> df shape: (4, 2) ┌─────┬─────┐ │ a ┆ b │ │ --- ┆ --- │ │ i64 ┆ i64 │ ╞═════╪═════╡ │ 7 ┆ 2 │ │ 2 ┆ 5 │ │ 3 ┆ 6 │ │ 4 ┆ 7 │ └─────┴─────┘
Calculate product of
a
.>>> df.with_columns(pl.col("a").apply(lambda x: x * x).alias("product_a")) shape: (4, 3) ┌─────┬─────┬───────────┐ │ a ┆ b ┆ product_a │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ i64 │ ╞═════╪═════╪═══════════╡ │ 7 ┆ 2 ┆ 49 │ │ 2 ┆ 5 ┆ 4 │ │ 3 ┆ 6 ┆ 9 │ │ 4 ┆ 7 ┆ 16 │ └─────┴─────┴───────────┘