當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python PySpark DataFrame dropna方法用法及代碼示例

PySpark DataFrame 的 dropna(~) 方法刪除具有缺失值的行。

參數

1.how | string | optional

  • 如果是'any',則刪除包含任何空值的行。

  • 如果是 'all' ,則刪除包含所有空值的行。

默認情況下,how='any'

2. thresh | int | optional

刪除非空值少於 thresh 的行。請注意,這會覆蓋 how 參數。

3. subset | stringtuplelist | optional

要檢查空值的行。默認情況下,將檢查所有行。

返回值

PySpark 數據幀。

例子

考慮以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 20], [None, None], ["Cathy", None]], ["name", "age"])
df.show()



+-----+----+
| name| age|
+-----+----+
| Alex|  20|
| null|null|
|Cathy|null|
+-----+----+

刪除 PySpark DataFrame 中至少有一個缺失值的行

要刪除至少有一個缺失值的行:

df.dropna().show()



+----+---+
|name|age|
+----+---+
|Alex| 20|
+----+---+

刪除 PySpark DataFrame 中至少有 n 個非缺失值的行

要刪除至少包含 2 個非缺失值的行:

n_non_missing_vals = 2
df.dropna(thresh=n_non_missing_vals).show()



+----+---+
|name|age|
+----+---+
|Alex| 20|
+----+---+

刪除 PySpark DataFrame 中至少有 n 個缺失值的行

要刪除至少有 2 個缺失值的行:

n_missing_vals = 2
df.dropna(thresh=len(df.columns)-n_missing_vals+1).show()



+-----+----+
| name| age|
+-----+----+
| Alex|  20|
|Cathy|null|
+-----+----+

刪除 PySpark DataFrame 中所有缺失值的行

要刪除包含所有缺失值的行:

df.dropna(how='all').show()



+-----+----+
| name| age|
+-----+----+
| Alex|  20|
|Cathy|null|
+-----+----+

刪除 PySpark DataFrame 中缺少某些值的行

要刪除缺少 age 值的行:

df.dropna(subset='age').show()



+----+---+
|name|age|
+----+---+
|Alex| 20|
+----+---+

刪除 PySpark DataFrame 中缺少某些值的行

要刪除缺少 nameage 列值的行:

df.dropna(subset=['name','age'], how='any').show()



+----+---+
|name|age|
+----+---+
|Alex| 20|
+----+---+

刪除 PySpark DataFrame 中某些值缺失(全部)的行

要刪除 nameage 列值都缺失的行:

df.dropna(subset=['name','age'], how='all').show()



+-----+----+
| name| age|
+-----+----+
| Alex|  20|
|Cathy|null|
+-----+----+

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark DataFrame | dropna method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。