remplacer (DataFrameNaFunctions)
Retourne un nouveau DataFrame en remplaçant une valeur par une autre valeur. DataFrame.replace et DataFrameNaFunctions.replace sont des alias l'un de l'autre. Les valeurs de to_replace et value doivent avoir le même type et peuvent être uniquement des nombres, des booléens ou des chaînes de caractères. value peut être None. Lors du remplacement, la nouvelle valeur est convertie au type de la colonne existante.
Syntaxe
replace(to_replace, value=None, subset=None)
parameter
parameter | Type | Description |
|---|---|---|
| bool, int, float, str, liste ou dict | La valeur à remplacer. S'il s'agit d'un dictionnaire, |
| bool, int, float, str, ou None, facultatif | La valeur de remplacement. S'il s'agit d'une liste, elle doit être de la même longueur et du même type que |
| liste, facultative | Noms de colonne à prendre en compte. Les colonnes dans |
Renvoie
DataFrame
Notes
Pour les remplacements numériques, toutes les valeurs à remplacer doivent avoir des représentations uniques en virgule flottante. En cas de conflits (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 'Alice' par la valeur nulle 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 'A' et 'Bob' par 'B' dans la 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 colonne age.
df.na.replace(10, 18, 'age').show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# | 18| 80|Alice|
# | 5| NULL| Bob|
# |NULL| 10| Tom|
# |NULL| NULL| NULL|
# +----+------+-----+