sklearn.impute.SimpleImputer
是 Scikit-learn 库中用于数据填充的一个函数,用于对缺失的数据进行简单的填充处理。它的作用是根据输入方法来填充缺失值,常用的方法有:
- 均值: 将缺失值填充为该列的均值。
- 中位数: 将缺失值填充为该列的中位数。
- 最常见值: 将缺失值填充为该列中出现最频繁的值。
- 固定值: 将缺失值填充为固定的数值。
下面我们详细介绍 SimpleImputer
的使用方法,以及如何使用它来填充缺失值。
安装和导入
在开始使用 SimpleImputer
之前,我们需要先安装并导入 Scikit-learn。
!pip install scikit-learn
接着通过以下代码进行导入:
from sklearn.impute import SimpleImputer
构造一个 SimpleImputer 对象
构造一个 SimpleImputer
对象的方式如下:
# 创建一个 SimpleImputer 对象
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
其中,missing_values
指定了需要替换的缺失值,我们使用了 np.nan
表示缺失值。strategy
指定了替换策略,这里我们使用的是均值。常用的 strategy
参数有 mean
、median
和 most_frequent
。
填充数据
接下来我们利用前面的 SimpleImputer
对象来处理我们的数据。以下是一个数据集的例子:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [9, 10, 11, np.nan]
})
df
是一个包含了缺失数据的 DataFrame。我们可以使用 SimpleImputer
对象来填充它。
# 对数据进行填充
df_filled = imputer.fit_transform(df)
在这个例子中,我们使用了 fit_transform
方法来对数据进行填充。这个方法会返回一个新的 DataFrame。
实例
下面提供两个例子来说明 SimpleImputer
的使用。
实例 1
在这个例子中,我们使用 mean
策略来对数据进行填充。
import pandas as pd
from sklearn.impute import SimpleImputer
# 创建一个 SimpleImputer 对象,使用均值来填充缺失值
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
# 创建一个测试数据集
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [9, 10, 11, np.nan]
})
# 对数据进行填充
df_filled = imputer.fit_transform(df)
# 输出结果
print(df_filled)
输出结果如下:
array([[ 1. , 5. , 9. ],
[ 2. , 6. , 10. ],
[ 2.33333333, 7. , 11. ],
[ 4. , 8. , 10. ]])
在这个结果中,我们可以看到缺失值被成功地填充为了该列的均值。
实例 2
在这个例子中,我们使用 most_frequent
策略来对数据进行填充。
import pandas as pd
from sklearn.impute import SimpleImputer
# 创建一个 SimpleImputer 对象,使用最常见值来填充缺失值
imputer = SimpleImputer(missing_values=np.nan, strategy='most_frequent')
# 创建一个测试数据集
df = pd.DataFrame({
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [1, 2, np.nan, 4]
})
# 对数据进行填充
df_filled = imputer.fit_transform(df)
# 输出结果
print(df_filled)
输出结果如下:
array([[1., 5., 1.],
[2., 5., 2.],
[1., 7., 1.],
[4., 8., 4.]])
在这个结果中,我们可以看到缺失值被成功地填充为了该列中出现最频繁的值。