PySpark DataFrame 的 fillna(~)
方法將 null
值替換為您指定的值。我們還可以選擇列來執行填充。
參數
1.value
| int
或 float
或 string
或 boolean
或 dict
用於填充 null
值的值。對於 dict
,鍵將是列標簽,值將是該列的填充值。如果傳遞dict
,則忽略subset
。
2. subset
| string
或 tuple
或 list
| optional
要考慮填充的列。默認情況下,將考慮與 value
類型相同的所有列。
返回值
PySpark 數據幀 (pyspark.sql.dataframe.DataFrame
)。
例子
考慮以下PySpark DataFrame:
df = spark.createDataFrame([["Alex", 25, None], [None, 30, 200], ["Cathy", None, 100]], ["name", "age", "salary"])
df.show()
+-----+----+------+
| name| age|salary|
+-----+----+------+
| Alex| 25| null|
| null| 30| 200|
|Cathy|null| 100|
+-----+----+------+
填充整個PySpark DataFrame中的缺失值
要使用 50
填充所有缺失值:
df.fillna(50).show()
+-----+---+------+
| name|age|salary|
+-----+---+------+
| Alex| 25| 50|
| null| 30| 200|
|Cathy| 50| 100|
+-----+---+------+
在這裏,請注意 null
值在 name
列中的完整性。這是因為我們為 value
參數傳入了 50
,該參數是數字類型。但是,name
列是字符串類型,由於數據類型不匹配,null
值未填充到name
列。
使用不同列的不同值填充缺失值
要使用 50
填充 age
中的 null
值,以及使用 300
填充 salary
中的值:
df.fillna({"age":50, "salary":300}).show()
+-----+---+------+
| name|age|salary|
+-----+---+------+
| Alex| 25| 300|
| null| 30| 200|
|Cathy| 50| 100|
+-----+---+------+
對不同列使用相同的值填充缺失值
要使用 50
填充 age
和 salary
列的 null
值:
df.fillna(50, ["age","salary"]).show()
+-----+---+------+
| name|age|salary|
+-----+---+------+
| Alex| 25| 50|
| null| 30| 200|
|Cathy| 50| 100|
+-----+---+------+
使用另一列的值填充缺失值
不幸的是,fillna(-)
方法不允許用另一列的值填充缺失值。
考慮以下PySpark DataFrame:
df = spark.createDataFrame([["Alex", 25, None], [None, 30, 200], ["Cathy", None, 100]], ["name", "age", "salary"])
df.show()
+-----+----+------+
| name| age|salary|
+-----+----+------+
| Alex| 25| null|
| null| 30| 200|
|Cathy|null| 100|
+-----+----+------+
要將 age
中的缺失值替換為 salary
中的值,我們可以使用 PySpark 的 when(-)
方法:
df.withColumn("age", F.when(F.col("age").isNull(), F.col("salary")).otherwise(F.col("age"))).show()
+-----+---+------+
| name|age|salary|
+-----+---+------+
| Alex| 25| null|
| null| 30| 200|
|Cathy|100| 100|
+-----+---+------+
相關用法
- Python Pandas DataFrame fillna方法用法及代碼示例
- Python PySpark DataFrame filter方法用法及代碼示例
- Python Pandas DataFrame filter方法用法及代碼示例
- Python Pandas DataFrame first_valid_index方法用法及代碼示例
- Python Pandas DataFrame first方法用法及代碼示例
- Python Pandas DataFrame floordiv方法用法及代碼示例
- Python PySpark DataFrame foreach方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
- Python Pandas DataFrame pop方法用法及代碼示例
- Python Pandas DataFrame nsmallest方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame items方法用法及代碼示例
- Python Pandas DataFrame max方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python Pandas DataFrame agg方法用法及代碼示例
- Python Pandas DataFrame copy方法用法及代碼示例
- Python Pandas DataFrame pow方法用法及代碼示例
- Python Pandas DataFrame insert方法用法及代碼示例
- Python Pandas DataFrame lt方法用法及代碼示例
- Python Pandas DataFrame all方法用法及代碼示例
- Python Pandas DataFrame unstack方法用法及代碼示例
- Python Pandas DataFrame mean方法用法及代碼示例
- Python Pandas DataFrame tz_convert方法用法及代碼示例
- Python Pandas DataFrame isin方法用法及代碼示例
- Python PySpark DataFrame collect方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark DataFrame | fillna method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。