回傳一個新的 DataFrame,將一個值替換為另一個值。
DataFrame.replace 兩者 DataFrameNaFunctions.replace 是彼此的別名。 to_replace 和 value 必須具有相同的型別,且只能是數字、布林或字串。 價值可以是零。 替換時,新值會鑄造成現有欄位的類型。
語法
replace(to_replace: Union["LiteralType", List["LiteralType"], Dict["LiteralType", "OptionalPrimitiveType"]], value: Optional[Union["OptionalPrimitiveType", List["OptionalPrimitiveType"]]] = _NoValue, subset: Optional[List[str]] = None)
參數
| 參數 | 類型 | 說明 |
|---|---|---|
to_replace |
布爾、int、float、字串、列表或字典 | 要被替換的價值。 若值為字字,則 value 可忽略或省略,且 to_replace 必須是值與替換之間的映射。 |
value |
bool、int、float、string 或 None,選擇性 | 替換值必須是 bool、int、float、string 或 None。 若 value 是一個列表,則 value 應該與 的長度和類型 to_replace相同。 若 value 是純量且 to_replace 為序列,則 value 用作中每個項目 to_replace的替代。 |
subset |
清單,選用 | 可選的欄位名稱清單。 子集中指定的欄位若資料型別不匹配,則會被忽略。 |
退貨
DataFrame: DataFrame 並被替換了值。
Examples
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|
# +----+------+----+