Path: blob/main/crates/polars-python/src/functions/aggregation.rs
7889 views
use polars::lazy::dsl;1use pyo3::prelude::*;23use crate::PyExpr;4use crate::error::PyPolarsErr;5use crate::expr::ToExprs;67#[pyfunction]8pub fn all_horizontal(exprs: Vec<PyExpr>) -> PyResult<PyExpr> {9let exprs = exprs.to_exprs();10let e = dsl::all_horizontal(exprs).map_err(PyPolarsErr::from)?;11Ok(e.into())12}1314#[pyfunction]15pub fn any_horizontal(exprs: Vec<PyExpr>) -> PyResult<PyExpr> {16let exprs = exprs.to_exprs();17let e = dsl::any_horizontal(exprs).map_err(PyPolarsErr::from)?;18Ok(e.into())19}2021#[pyfunction]22pub fn max_horizontal(exprs: Vec<PyExpr>) -> PyResult<PyExpr> {23let exprs = exprs.to_exprs();24let e = dsl::max_horizontal(exprs).map_err(PyPolarsErr::from)?;25Ok(e.into())26}2728#[pyfunction]29pub fn min_horizontal(exprs: Vec<PyExpr>) -> PyResult<PyExpr> {30let exprs = exprs.to_exprs();31let e = dsl::min_horizontal(exprs).map_err(PyPolarsErr::from)?;32Ok(e.into())33}3435#[pyfunction]36pub fn sum_horizontal(exprs: Vec<PyExpr>, ignore_nulls: bool) -> PyResult<PyExpr> {37let exprs = exprs.to_exprs();38let e = dsl::sum_horizontal(exprs, ignore_nulls).map_err(PyPolarsErr::from)?;39Ok(e.into())40}4142#[pyfunction]43pub fn mean_horizontal(exprs: Vec<PyExpr>, ignore_nulls: bool) -> PyResult<PyExpr> {44let exprs = exprs.to_exprs();45let e = dsl::mean_horizontal(exprs, ignore_nulls).map_err(PyPolarsErr::from)?;46Ok(e.into())47}484950