Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Returnerar en ny DataFrame som ersätter ett värde med ett annat värde.
DataFrame.replace och DataFrameNaFunctions.replace är alias för varandra. Värden för to_replace och value måste ha samma typ och kan bara vara numeriska värden, booleska värden eller strängar.
value kan vara None. När du byter ut omvandlas det nya värdet till den befintliga kolumnens typ.
Syntax
replace(to_replace, value=None, subset=None)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
to_replace |
bool, int, float, str, list eller dict | Värdet som ska ersättas. Om en diktering value ignoreras och to_replace måste vara en mappning från ett värde till dess ersättning. |
value |
bool, int, float, str eller None, valfritt | Ersättningsvärdet. Om en lista, måste vara samma längd och typ som to_replace. Om en skalär och to_replace är en sekvens används skalären som ersättning för varje objekt. |
subset |
list, valfritt | Kolumnnamn att tänka på. Kolumner i subset som inte har någon matchande datatyp ignoreras. |
Retur
DataFrame
Notes
För numeriska ersättningar måste alla värden som ska ersättas ha unika flyttalsrepresentationer. Vid konflikter (till exempel {42: -1, 42.0: 1}) används en godtycklig ersättning.
Exempel
df = spark.createDataFrame([
(10, 80, "Alice"),
(5, None, "Bob"),
(None, 10, "Tom"),
(None, None, None)],
schema=["age", "height", "name"])
Ersätt 10 med 20 i alla kolumner.
df.na.replace(10, 20).show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# | 20| 80|Alice|
# | 5| NULL| Bob|
# |NULL| 20| Tom|
# |NULL| NULL| NULL|
# +----+------+-----+
Ersätt 'Alice' med null i alla kolumner.
df.na.replace('Alice', None).show()
# +----+------+----+
# | age|height|name|
# +----+------+----+
# | 10| 80|NULL|
# | 5| NULL| Bob|
# |NULL| 10| Tom|
# |NULL| NULL|NULL|
# +----+------+----+
Ersätt 'Alice' med 'A' och 'Bob' med 'B' i name kolumnen.
df.na.replace(['Alice', 'Bob'], ['A', 'B'], 'name').show()
# +----+------+----+
# | age|height|name|
# +----+------+----+
# | 10| 80| A|
# | 5| NULL| B|
# |NULL| 10| Tom|
# |NULL| NULL|NULL|
# +----+------+----+
Ersätt 10 med 18 i age kolumnen.
df.na.replace(10, 18, 'age').show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# | 18| 80|Alice|
# | 5| NULL| Bob|
# |NULL| 10| Tom|
# |NULL| NULL| NULL|
# +----+------+-----+