如何使用 Pandas series.fillna() 替換缺失值?


pandas series.fillna() 方法用於用指定值替換缺失值。此方法替換整個序列物件中的 Nan 或 NA 值。

pandas fillna 的引數如下所示:

  • Value - 它允許我們指定一個特定的值來替換 Nan,預設情況下它取 None。

  • Method - 用於填充重新索引的 Series 中的缺失值。它採用以下任何值,如 'backfill'、'bfill'、'pad'、'ffill' 和 None(預設值)。

  • Inplace - 此引數採用布林值。如果它取 True,則修改將應用於原始序列物件本身,否則,它將建立一個新的序列,並將更新的缺失值作為結果。預設值為 False。

  • Limit - 此引數採用整數值,用於指定希望向前/向後填充多少個 NA 值。此引數的預設值為 None。

  • Axis - 它採用 0 或索引標籤。

  • Downcast - 它採用一個字典,指定資料型別的降級。

在這裡,我們將瞭解 series.fillna() 方法如何替換缺失值。

示例 1

在下面的示例中,我們將用整數 10 替換缺失值。

# importing pandas package
import pandas as pd
import numpy as np

# create a series
s = pd.Series([np.nan, np.nan, 89, 64, np.nan], index=["a", "b", "c", "d", "e"])
print(s)

# replace Missing values with 10
result = s.fillna(10)
print('Result:')
print(result)

說明

最初,我們建立了包含一些缺失值的 pandas 系列物件。然後用值 10 應用 fillna() 方法。這裡,預設引數沒有改變。

輸出

輸出如下:

a     NaN
b     NaN
c    89.0
d    64.0
e     NaN
dtype: float64

Result:
a    10.0
b    10.0
c    89.0
d    64.0
e    10.0
dtype: float64

在上面的輸出塊中,我們可以看到整個序列物件中的所有 Nan 值都被很好地替換為值 10。

示例 2

這次,我們將透過將 bfill 值指定給方法引數來替換缺失值。這樣,我們就不需要指定任何特定值來填充缺失值,它將取 Nan 之後的作為替換值。

# importing pandas package
import pandas as pd
import numpy as np

# create a series
s = pd.Series([np.nan, np.nan, 89, 64, np.nan], index=["a", "b", "c", "d", "e"])
print(s)

# replace Missing values with bfill
result = s.fillna(method='bfill')
print('Result:')
print(result)

輸出

輸出如下所示:

a     NaN
b     NaN
c    89.0
d    64.0
e     NaN
dtype: float64

Result:
a    89.0
b    89.0
c    89.0
d    64.0
e     NaN
dtype: float64

在上面的輸出塊中,我們可以看到索引位置 a、b 處的 Nan 值被替換為值 89,這是因為我們將 bfill 值指定給了方法引數。索引位置 e 處的 Nan 值保持不變。

更新於:2022年3月7日

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.