Spec-Zone.ru › Polars

polars.DataFrame.fold

DataFrame.fold(
    operation: Callable[[Series,
    Series],
    Series],
) → Series

Применяет горизонтальную редукцию к 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
]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API