Freigeben über


replace (DataFrameNaFunctions)

Gibt einen neuen DataFrame Wert zurück, der einen Wert durch einen anderen Wert ersetzt. DataFrame.replace und DataFrameNaFunctions.replace sind Aliase voneinander. Werte für to_replace und value müssen denselben Typ aufweisen und dürfen nur Numerische, Booleane oder Zeichenfolgen sein. value kann sein None. Beim Ersetzen wird der neue Wert in den Typ der vorhandenen Spalte umgegossen.

Syntax

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

Parameter

Parameter Typ Beschreibung
to_replace bool, int, float, str, list, or dict Der zu ersetzende Wert. Wenn ein Diktat ignoriert wird, wird er value ignoriert und to_replace muss eine Zuordnung von einem Wert zu seinem Ersatz sein.
value bool, int, float, str, or None, optional Der Ersetzungswert. Wenn eine Liste vorhanden ist, muss die gleiche Länge und typ wie to_replace. Wenn ein Skalar und to_replace eine Sequenz ist, wird der Skalar als Ersatz für jedes Element verwendet.
subset liste, optional Zu berücksichtigende Spaltennamen. Spalten, die subset keinen übereinstimmenden Datentyp aufweisen, werden ignoriert.

Rückkehr

DataFrame

Hinweise

Für numerische Ersetzungen müssen alle zu ersetzenden Werte eindeutige Gleitkommadarstellungen aufweisen. Bei Konflikten (z. B {42: -1, 42.0: 1}. ) wird ein beliebiger Ersatz verwendet.

Beispiele

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

Ersetzen Sie 10 durch 20 in allen Spalten.

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

Ersetzen Sie 'Alice' in allen Spalten durch NULL.

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

Ersetzen sie 'Alice' durch 'A' und 'Bob' durch 'B' die name Spalte.

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

Ersetzen Sie 10 durch 18 in der age Spalte.

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