Spec-Zone.ru › Polars

polars.Expr.replace

Expr.replace(
    old: IntoExpr | Sequence[Any] | Mapping[Any,
    Any],
    new: IntoExpr | Sequence[Any] | NoDefault = <no_default>,
    *,
    default: IntoExpr | NoDefault = <no_default>,
    return_dtype: PolarsDataType | None = None,
) → Expr

Заменяет заданные значения другими значениями того же типа данных.

движок:В памятиПотоковыйРаспределённый
Параметры:
old

Значение или последовательность значений для замены. Принимает выражение. Последовательности преобразуются в Series, остальные входные данные, не являющиеся выражениями, интерпретируются как литералы. Также принимает отображение значений и соответствующих им значений для замены в качестве синтаксического сахара для replace(old=Series(mapping.keys()), new=Series(mapping.values())).

new

Значение или последовательность значений, которыми следует заменить. Принимает выражение. Последовательности преобразуются в Series, остальные входные данные, не являющиеся выражениями, интерпретируются как литералы. Длина должна совпадать с длиной old или равняться 1.

default

Задаёт значение для тех элементов, которые не были заменены. По умолчанию сохраняется исходное значение. Принимает выражение. Входные данные, не являющиеся выражениями, интерпретируются как литералы.

Устарело с версии 1.0.0: Вместо этого используйте replace_strict(), чтобы задать значение по умолчанию при замене элементов.

return_dtype

Тип данных результирующего выражения. Если задано значение None (по умолчанию), сохраняется тип данных исходного столбца.

Устарело с версии 1.0.0: Вместо этого используйте replace_strict(), чтобы задать тип возвращаемых данных при замене элементов, либо явно вызовите cast() для результата.

См. также

replace_strict
str.replace

Примеры

Замените одно значение другим. Значения, которые не были заменены, остаются без изменений.

>>> df = pl.DataFrame({"a": [1, 2, 2, 3]})
>>> df.with_columns(replaced=pl.col("a").replace(2, 100))
shape: (4, 2)
┌─────┬──────────┐
│ a   ┆ replaced │
│ --- ┆ ---      │
│ i64 ┆ i64      │
╞═════╪══════════╡
│ 1   ┆ 1        │
│ 2   ┆ 100      │
│ 2   ┆ 100      │
│ 3   ┆ 3        │
└─────┴──────────┘

Замените несколько значений, передав последовательности в параметры old и new.

>>> df.with_columns(replaced=pl.col("a").replace([2, 3], [100, 200]))
shape: (4, 2)
┌─────┬──────────┐
│ a   ┆ replaced │
│ --- ┆ ---      │
│ i64 ┆ i64      │
╞═════╪══════════╡
│ 1   ┆ 1        │
│ 2   ┆ 100      │
│ 2   ┆ 100      │
│ 3   ┆ 200      │
└─────┴──────────┘

Также поддерживается передача отображения с заменами в качестве синтаксического сахара.

>>> mapping = {2: 100, 3: 200}
>>> df.with_columns(replaced=pl.col("a").replace(mapping))
shape: (4, 2)
┌─────┬──────────┐
│ a   ┆ replaced │
│ --- ┆ ---      │
│ i64 ┆ i64      │
╞═════╪══════════╡
│ 1   ┆ 1        │
│ 2   ┆ 100      │
│ 2   ┆ 100      │
│ 3   ┆ 200      │
└─────┴──────────┘

При замене на значения другого типа данных исходный тип данных сохраняется. Используйте replace_strict(), чтобы выполнить замену и изменить тип возвращаемых данных.

>>> df = pl.DataFrame({"a": ["x", "y", "z"]})
>>> mapping = {"x": 1, "y": 2, "z": 3}
>>> df.with_columns(replaced=pl.col("a").replace(mapping))
shape: (3, 2)
┌─────┬──────────┐
│ a   ┆ replaced │
│ --- ┆ ---      │
│ str ┆ str      │
╞═════╪══════════╡
│ x   ┆ 1        │
│ y   ┆ 2        │
│ z   ┆ 3        │
└─────┴──────────┘

Поддерживается ввод выражений.

>>> df = pl.DataFrame({"a": [1, 2, 2, 3], "b": [1.5, 2.5, 5.0, 1.0]})
>>> df.with_columns(
...     replaced=pl.col("a").replace(
...         old=pl.col("a").max(),
...         new=pl.col("b").sum(),
...     )
... )
shape: (4, 3)
┌─────┬─────┬──────────┐
│ a   ┆ b   ┆ replaced │
│ --- ┆ --- ┆ ---      │
│ i64 ┆ f64 ┆ i64      │
╞═════╪═════╪══════════╡
│ 1   ┆ 1.5 ┆ 1        │
│ 2   ┆ 2.5 ┆ 2        │
│ 2   ┆ 5.0 ┆ 2        │
│ 3   ┆ 1.0 ┆ 10       │
└─────┴─────┴──────────┘

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.replace.html

Spec-Zone.ru

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