replace (DataFrameNaFunctions)

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

Синтаксис

replace(to_replace, value=None, subset=None)

Параметры

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

Возвраты

DataFrame

Примечания

Для числовых замен все значения, которые необходимо заменить, должны иметь уникальные представления с плавающей запятой. В случае конфликтов (например, {42: -1, 42.0: 1}используется произвольная замена).

Примеры

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

Замените 10 20 на все столбцы.

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

Замените 'Alice' значение NULL во всех столбцах.

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

Замените 'Alice' его 'A' и 'Bob' на 'B'name столбец.

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

Замените 10 18 в столбце age .

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