replace (DataFrameNaFunctions)

Zwraca nową DataFrame wartość zastępującą wartość inną wartością. DataFrame.replace i DataFrameNaFunctions.replace są aliasami siebie nawzajem. Wartości dla to_replace i value muszą mieć ten sam typ i mogą być tylko wartościami liczbowymi, logicznymi lub ciągami. value może mieć wartość None. Podczas zastępowania nowa wartość jest rzutowa na typ istniejącej kolumny.

Składnia

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

Parametry

Parameter Typ Opis
to_replace bool, int, float, str, list, or dict Wartość do zastąpienia. Jeśli dykt jest value ignorowany i to_replace musi być mapowaniem z wartości na jego zastąpienie.
value bool, int, float, str, or None, opcjonalnie Wartość zastępcza. Jeśli lista musi mieć taką samą długość i typ jak to_replace. Jeśli skalarny i to_replace jest sekwencją, skalar jest używany jako zamiennik dla każdego elementu.
subset lista, opcjonalnie Nazwy kolumn do rozważenia. Kolumny, w subset których nie mają pasującego typu danych, są ignorowane.

Zwroty

DataFrame

Notatki

W przypadku zamian liczbowych wszystkie wartości do zastąpienia muszą mieć unikatowe reprezentacje zmiennoprzecinkowe. W przypadku konfliktów (na przykład {42: -1, 42.0: 1}) jest używana dowolna zamiana.

Examples

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

Zastąp wartość 10 wartością 20 we wszystkich kolumnach.

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

Zastąp ciąg 'Alice' wartością null we wszystkich kolumnach.

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

Zastąp 'Alice' ciąg ciągiem 'A' i 'Bob' ciągiem 'B' w kolumnie 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|
# +----+------+----+

Zastąp wartość 10 wartością 18 w kolumnie age .

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