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


Python pyspark DataFrame.fillna用法及代碼示例

本文簡要介紹 pyspark.pandas.DataFrame.fillna 的用法。

用法:

DataFrame.fillna(value: Union[Any, Dict[Union[Any, Tuple[Any, …]], Any], None] = None, method: Optional[str] = None, axis: Union[int, str, None] = None, inplace: bool = False, limit: Optional[int] = None) → Optional[pyspark.pandas.frame.DataFrame]

填寫 NA/NaN 值。

注意

當前在fillna 中‘method’ 參數的實現使用Spark 的Window,沒有指定分區規範。這會導致將所有數據移動到單個機器中的單個分區中,並可能導致嚴重的性能下降。避免對非常大的數據集使用此方法。

參數

value標量,字典,係列

用於填補漏洞的值。或者是一個字典/一係列值,指定每列使用哪個值。不支持DataFrame。

method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, 無},默認無

用於填充重新索引係列 pad/ffill 中的孔的方法:將最後一個有效觀察向前傳播到下一個有效回填/bfill:使用 NEXT 有效觀察來填充間隙

axis{0 或 index }

不支持 1 和 columns

inplace布爾值,默認為 False

就地填充(不創建新對象)

limit整數,默認無

如果指定了方法,則這是要向前/向後填充的連續 NaN 值的最大數量。換句話說,如果存在連續 NaN 數量超過此數量的間隙,則隻會部分填充。如果未指定方法,則這是沿整個軸填充 NaNs 的最大條目數。如果不是 None 則必須大於 0

返回

DataFrame

DataFrame 已填充 NA 條目。

例子

>>> df = ps.DataFrame({
...     'A': [None, 3, None, None],
...     'B': [2, 4, None, 3],
...     'C': [None, None, None, 1],
...     'D': [0, 1, 5, 4]
...     },
...     columns=['A', 'B', 'C', 'D'])
>>> df
     A    B    C  D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  NaN  NaN  NaN  5
3  NaN  3.0  1.0  4

將所有 NaN 元素替換為 0。

>>> df.fillna(0)
     A    B    C  D
0  0.0  2.0  0.0  0
1  3.0  4.0  0.0  1
2  0.0  0.0  0.0  5
3  0.0  3.0  1.0  4

我們還可以向前或向後傳播非空值。

>>> df.fillna(method='ffill')
     A    B    C  D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  3.0  4.0  NaN  5
3  3.0  3.0  1.0  4

將‘A’、‘B’、‘C’和‘D’列中的所有 NaN 元素分別替換為 0、1、2 和 3。

>>> values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>> df.fillna(value=values)
     A    B    C  D
0  0.0  2.0  2.0  0
1  3.0  4.0  2.0  1
2  0.0  1.0  2.0  5
3  0.0  3.0  1.0  4

相關用法


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