replace (DataFrameNaFunctions)

Devuelve un nuevo DataFrame reemplazo de un valor por otro valor. DataFrame.replace y DataFrameNaFunctions.replace son alias entre sí. Los valores de to_replace y value deben tener el mismo tipo y solo pueden ser numéricos, booleanos o cadenas. value puede ser None. Al reemplazar, el nuevo valor se convierte en el tipo de la columna existente.

Sintaxis

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

Parámetros

Parámetro Tipo Descripción
to_replace bool, int, float, str, list o dict Valor que se va a reemplazar. Si se omite un dict, value se omite y to_replace debe ser una asignación de un valor a su reemplazo.
value bool, int, float, str o None, opcional Valor de reemplazo. Si una lista, debe tener la misma longitud y tipo que to_replace. Si un escalar y to_replace es una secuencia, el escalar se usa como reemplazo de cada elemento.
subset list, opcional Nombres de columna que se deben tener en cuenta. Las columnas de subset que no tienen un tipo de datos coincidente se omiten.

Devoluciones

DataFrame

Notas

Para los reemplazos numéricos, todos los valores que se van a reemplazar deben tener representaciones de punto flotante únicas. En caso de conflictos (por ejemplo, {42: -1, 42.0: 1}), se usa un reemplazo arbitrario.

Ejemplos

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

Reemplace 10 por 20 en todas las columnas.

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

Reemplace 'Alice' por null en todas las columnas.

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

Reemplace por 'Alice''A' y 'Bob' por 'B' en la name columna .

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

Reemplace 10 por 18 en la age columna.

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