replace (DataFrame)

Возвращает новый кадр данных, заменяющий значение другим значением. DataFrame.replace и DataFrameNaFunctions.replace являются псевдонимами друг друга. Значения to_replace и значение должны иметь одинаковый тип и могут быть только числовыми, логическими или строками. Значение может иметь значение None. При замене новое значение будет приведение к типу существующего столбца.

Синтаксис

replace(to_replace: Union["LiteralType", List["LiteralType"], Dict["LiteralType", "OptionalPrimitiveType"]], value: Optional[Union["OptionalPrimitiveType", List["OptionalPrimitiveType"]]] = _NoValue, subset: Optional[List[str]] = None)

Параметры

Параметр Тип Описание
to_replace bool, int, float, string, list или dict значение, которое необходимо заменить. Если значение является диктом, то value игнорируется или может быть опущено и to_replace должно быть сопоставление между значением и заменой.
value bool, int, float, string или None, необязательный Значение замены должно быть логическим, int, float, string или None. Если value это список, value должен иметь ту же длину и тип, что to_replaceи список. Если value является скалярным и to_replace является последовательностью, то value используется в качестве замены для каждого элемента.to_replace
subset list, необязательный необязательный список имен столбцов для рассмотрения. Столбцы, указанные в подмножестве, которые не имеют соответствующих типов данных, игнорируются.

Возвраты

DataFrame: DataFrame с замененными значениями.

Примеры

df = spark.createDataFrame([
    (10, 80, "Alice"),
    (5, None, "Bob"),
    (None, 10, "Tom"),
    (None, None, None)],
    schema=["age", "height", "name"])

df.na.replace(10, 20).show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# |  20|    80|Alice|
# |   5|  NULL|  Bob|
# |NULL|    20|  Tom|
# |NULL|  NULL| NULL|
# +----+------+-----+

df.na.replace('Alice', None).show()
# +----+------+----+
# | age|height|name|
# +----+------+----+
# |  10|    80|NULL|
# |   5|  NULL| Bob|
# |NULL|    10| Tom|
# |NULL|  NULL|NULL|
# +----+------+----+

df.na.replace(['Alice', 'Bob'], ['A', 'B'], 'name').show()
# +----+------+----+
# | age|height|name|
# +----+------+----+
# |  10|    80|   A|
# |   5|  NULL|   B|
# |NULL|    10| Tom|
# |NULL|  NULL|NULL|
# +----+------+----+