polars.Expr.replace
-
Заменяет заданные значения другими значениями того же типа данных.
- Параметры:
-
- 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()для результата.
См. также
Примеры
Замените одно значение другим. Значения, которые не были заменены, остаются без изменений.
>>> 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 │ └─────┴─────┴──────────┘
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
© 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