返回将值替换为另一个值的新 DataFrame 值。
DataFrame.replace 是 DataFrameNaFunctions.replace 彼此的别名。 值to_replacevalue必须具有相同的类型,并且只能是数值、布尔值或字符串。
value 可以是 None。 替换时,新值将转换为现有列的类型。
Syntax
replace(to_replace, value=None, subset=None)
参数
| 参数 | 类型 | 说明 |
|---|---|---|
to_replace |
bool、int、float、str、list 或 dict | 要替换的值。 如果听写, value 则将被忽略,并且 to_replace 必须是从值到其替换的映射。 |
value |
bool、int、float、str 或 None,可选 | 替换值。 如果列表,则长度和类型 to_replace必须与该列表相同。 如果标量是 to_replace 序列,则标量将用作每个项的替换项。 |
subset |
列表,可选 | 要考虑的列名。
subset忽略不具有匹配数据类型的列。 |
退货
DataFrame
备注
对于数字替换,要替换的所有值都必须具有唯一的浮点表示形式。 如果发生冲突(例如), {42: -1, 42.0: 1}则使用任意替换。
示例
df = spark.createDataFrame([
(10, 80, "Alice"),
(5, None, "Bob"),
(None, 10, "Tom"),
(None, None, None)],
schema=["age", "height", "name"])
将所有列中的 10 替换为 20。
df.na.replace(10, 20).show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# | 20| 80|Alice|
# | 5| NULL| Bob|
# |NULL| 20| Tom|
# |NULL| NULL| NULL|
# +----+------+-----+
替换为 'Alice' 所有列中的 null。
df.na.replace('Alice', None).show()
# +----+------+----+
# | age|height|name|
# +----+------+----+
# | 10| 80|NULL|
# | 5| NULL| Bob|
# |NULL| 10| Tom|
# |NULL| NULL|NULL|
# +----+------+----+
在列中替换为'Alice''A'和'Bob'替换为'B'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|
# +----+------+----+
将 age 10 替换为列中的 18。
df.na.replace(10, 18, 'age').show()
# +----+------+-----+
# | age|height| name|
# +----+------+-----+
# | 18| 80|Alice|
# | 5| NULL| Bob|
# |NULL| 10| Tom|
# |NULL| NULL| NULL|
# +----+------+-----+