如何使用 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。

更新於: 2022年3月7日

17K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告