Path: blob/main/docs/source/src/python/user-guide/expressions/folds.py
7890 views
# --8<-- [start:mansum]1import operator2import polars as pl34df = pl.DataFrame(5{6"label": ["foo", "bar", "spam"],7"a": [1, 2, 3],8"b": [10, 20, 30],9}10)1112result = df.select(13pl.fold(14acc=pl.lit(0),15function=operator.add,16exprs=pl.col("a", "b"),17).alias("sum_fold"),18pl.sum_horizontal(pl.col("a", "b")).alias("sum_horz"),19)2021print(result)22# --8<-- [end:mansum]2324# --8<-- [start:mansum-explicit]25acc = pl.lit(0)26f = operator.add2728result = df.select(29f(f(acc, pl.col("a")), pl.col("b")),30pl.fold(acc=acc, function=f, exprs=pl.col("a", "b")).alias("sum_fold"),31)3233print(result)34# --8<-- [end:mansum-explicit]3536# --8<-- [start:manprod]37result = df.select(38pl.fold(39acc=pl.lit(0),40function=operator.mul,41exprs=pl.col("a", "b"),42).alias("prod"),43)4445print(result)46# --8<-- [end:manprod]4748# --8<-- [start:manprod-fixed]49result = df.select(50pl.fold(51acc=pl.lit(1),52function=operator.mul,53exprs=pl.col("a", "b"),54).alias("prod"),55)5657print(result)58# --8<-- [end:manprod-fixed]5960# --8<-- [start:conditional]61df = pl.DataFrame(62{63"a": [1, 2, 3],64"b": [0, 1, 2],65}66)6768result = df.filter(69pl.fold(70acc=pl.lit(True),71function=lambda acc, x: acc & x,72exprs=pl.all() > 1,73)74)75print(result)76# --8<-- [end:conditional]7778# --8<-- [start:string]79df = pl.DataFrame(80{81"a": ["a", "b", "c"],82"b": [1, 2, 3],83}84)8586result = df.select(pl.concat_str(["a", "b"]))87print(result)88# --8<-- [end:string]899091