如何使用 fillna() 方法用元素的平均值替換序列中的 NaN 值?
在 Pandas 資料清洗的過程中,替換缺失值起著非常重要的作用,在某些情況下,我們必須用序列元素的平均值替換這些缺失值。這可以透過使用 fillna() 方法來實現。
此 Pandas series.fillna() 方法的基本操作用於用指定值替換缺失值(Nan 或 NA)。最初,該方法會驗證所有 Nan 值,並用指定的替換值替換它們。
示例 1
在這裡,我們將看到 series.fillna() 方法如何用平均值替換缺失值。
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series([69, np.nan, np.nan, 10, 30, 52, 70, np.nan, 54, 79, np.nan]) print(s) # replace Missing values with an average value result = s.fillna(s.mean()) print('Result:') print(result)
解釋
在下面的示例中,我們將用序列元素的平均值替換缺失值。為此,我們將 series.mean() 函式作為引數應用於 fillna() 方法。
輸出
輸出如下所示:
0 69.0 1 NaN 2 NaN 3 10.0 4 30.0 5 52.0 6 70.0 7 NaN 8 54.0 9 79.0 10 NaN dtype: float64 Result: 0 69.0 1 52.0 2 52.0 3 10.0 4 30.0 5 52.0 6 70.0 7 52.0 8 54.0 9 79.0 10 52.0 dtype: float64
如您所見,值 52.0(平均值)替換了索引位置 1、2、5、7 和 10 中的 Nan 值。
示例 2
讓我們再舉一個例子,用序列元素的平均值替換缺失值 Nan/NA。
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series([np.nan, 49, 45, 47, 99, 99, np.nan, np.nan, 94, np.nan]) print(s) # replace Missing values with an average value result = s.fillna(s.mean()) print('Result:') print(result)
解釋
最初,我們使用整數列表和 Nan 值建立了一個 Pandas 序列物件,然後使用平均值呼叫了 fillna() 方法。透過使用 series.mean() 函式,我們計算了平均值,然後將該平均值作為 fillna() 方法的引數應用。
輸出
輸出如下所示:
0 NaN 1 49.0 2 45.0 3 47.0 4 99.0 5 99.0 6 NaN 7 NaN 8 94.0 9 NaN dtype: float64 Result: 0 72.166667 1 49.000000 2 45.000000 3 47.000000 4 99.000000 5 99.000000 6 72.166667 7 72.166667 8 94.000000 9 72.166667 dtype: float64
平均值 72.166667 替換了缺失值,索引位置為 0、6、7 和 9。
廣告