polars.DataFrame.fold
-
Применяет горизонтальную редукцию к DataFrame.
Это можно использовать для вычисления агрегатов на уровне строк; метод можно применять к любым типам данных, которые можно привести к общему родительскому типу.
Например, при выполнении арифметической операции над двумя типами данных действуют следующие правила приведения к общему типу:
- Int8 + String = String
- Float32 + Int64 = Float32
- Float32 + Float64 = Float64
- Параметры:
-
- operation
-
функция, которая принимает два
Seriesи возвращаетSeries.
Примеры
Горизонтальное суммирование:
>>> df = pl.DataFrame( ... { ... "a": [2, 1, 3], ... "b": [1, 2, 3], ... "c": [1.0, 2.0, 3.0], ... } ... ) >>> df.fold(lambda s1, s2: s1 + s2) shape: (3,) Series: 'a' [f64] [ 4.0 5.0 9.0 ]Горизонтальное вычисление минимума:
>>> df = pl.DataFrame({"a": [2, 1, 3], "b": [1, 2, 3], "c": [1.0, 2.0, 3.0]}) >>> df.fold(lambda s1, s2: s1.zip_with(s1 < s2, s2)) shape: (3,) Series: 'a' [f64] [ 1.0 1.0 3.0 ]Горизонтальная конкатенация строк:
>>> df = pl.DataFrame( ... { ... "a": ["foo", "bar", None], ... "b": [1, 2, 3], ... "c": [1.0, 2.0, 3.0], ... } ... ) >>> df.fold(lambda s1, s2: s1 + s2) shape: (3,) Series: 'a' [str] [ "foo11.0" "bar22.0" null ]Горизонтальное логическое ИЛИ, аналог построчного вызова .any():
>>> df = pl.DataFrame( ... { ... "a": [False, False, True], ... "b": [False, True, False], ... } ... ) >>> df.fold(lambda s1, s2: s1 | s2) shape: (3,) Series: 'a' [bool] [ false true true ]
DataFrame.fold(
operation: Callable[[Series,
Series],
Series],
) → Series
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.fold.html