Pandas 如何使用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
如您所见,在索引位置1、2、5、7和10,数值52.0(平均值)被替换为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。