def apply( exprs: list[str | pli.Expr], f: Callable[[list[pli.Series]], pli.Series | Any], return_dtype: type[DataType] | None = None, ) -> pli.Expr: """ Apply a custom function 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 f Function to apply over the input return_dtype dtype of the output Series Returns ------- Expr """ exprs = pli.selection_to_pyexpr_list(exprs) return pli.wrap_expr(_map_mul(exprs, f, return_dtype, apply_groups=True))
def apply( exprs: List[Union[str, "pli.Expr"]], f: Callable[[List["pli.Series"]], Union["pli.Series", Any]], return_dtype: Optional[Type[DataType]] = None, ) -> "pli.Expr": """ Apply a custom function in a GroupBy context. Depending on the context it has the following behavior: ## Context * Select/Project Don't do this, use `map` * GroupBy expected type `f`: Callable[[Series], Series] Applies a python function over each group. Parameters ---------- exprs Input Series to f f Function to apply over the input return_dtype dtype of the output Series Returns ------- Expr """ exprs = pli.selection_to_pyexpr_list(exprs) return pli.wrap_expr(_map_mul(exprs, f, return_dtype, apply_groups=True))
def map( exprs: list[str] | list[pli.Expr], f: Callable[[list[pli.Series]], pli.Series], return_dtype: type[DataType] | None = None, ) -> pli.Expr: """ Map a custom function over multiple columns/expressions and produce a single Series result. Parameters ---------- exprs Input Series to f f Function to apply over the input return_dtype dtype of the output Series Returns ------- Expr """ exprs = pli.selection_to_pyexpr_list(exprs) return pli.wrap_expr(_map_mul(exprs, f, return_dtype, apply_groups=False))