replace (DataFrameNaFunctions)

Retourne un nouveau DataFrame remplacement d’une valeur par une autre valeur. DataFrame.replace et DataFrameNaFunctions.replace sont des alias les uns des autres. Les valeurs pour to_replace et value doivent avoir le même type et peuvent uniquement être numériques, booléens ou chaînes. value peut être None. Lors du remplacement, la nouvelle valeur est convertie en type de colonne existante.

Syntaxe

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

Paramètres

Paramètre Type Description
to_replace bool, int, float, str, list ou dict Valeur à remplacer. Si une dictée est ignorée value et to_replace doit être un mappage d’une valeur à son remplacement.
value bool, int, float, str ou None, facultatif Valeur de remplacement. Si une liste doit être de la même longueur et du même type que to_replace. Si un scalaire et to_replace est une séquence, le scalaire est utilisé comme remplacement pour chaque élément.
subset list, facultatif Noms de colonnes à prendre en compte. Les colonnes qui subset n’ont pas de type de données correspondant sont ignorées.

Retours

DataFrame

Remarques

Pour les remplacements numériques, toutes les valeurs à remplacer doivent avoir des représentations à virgule flottante uniques. En cas de conflit (par exemple, {42: -1, 42.0: 1}), un remplacement arbitraire est utilisé.

Exemples

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

Remplacez 10 par 20 dans toutes les colonnes.

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

Remplacez par 'Alice' null dans toutes les colonnes.

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

Remplacez 'Alice' par et 'A' par 'Bob' dans la 'B' colonne.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|
# +----+------+----+

Remplacez 10 par 18 dans la age colonne.

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