Freigeben über


replace (DataFrame)

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

Syntax

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

Parameter

Parameter Typ Beschreibung
to_replace bool, int, float, string, list or dict der zu ersetzende Wert. Wenn der Wert ein Dict ist, wird er value ignoriert oder kann weggelassen werden und to_replace muss eine Zuordnung zwischen einem Wert und einem Ersatz sein.
value bool, int, float, string or None, optional Der Ersetzungswert muss ein Bool, int, float, string oder None sein. Wenn value es sich um eine Liste handelt, value sollte die gleiche Länge und denselben Typ aufweisen wie to_replace. Wenn value es sich um einen Skalar handelt und to_replace eine Sequenz ist, wird sie value als Ersatz für jedes Element in to_replaceverwendet.
subset liste, optional optionale Liste der zu berücksichtigenden Spaltennamen. Spalten, die in Einer Teilmenge angegeben sind, die nicht übereinstimmende Datentypen aufweisen, werden ignoriert.

Rückkehr

DataFrame: DataFrame mit ersetzten Werten.

Beispiele

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|
# +----+------+----+