sklearn.impute.SimpleImputer 数据填充

数据缺失值补全方法sklearn.impute.SimpleImputer

imp=SimpleImputer(missing_values=np.nan,strategy=’mean’)

创建该类的对象,missing_values,也就是缺失值是什么,一般情况下缺失值当然就是空值啦,也就是np.nan

strategy:也就是你采取什么样的策略去填充空值,总共有4种选择。分别是mean,median, most_frequent,以及constant,这是对于每一列来说的,如果是mean,则该列则由该列的均值填充。而median,则是中位数,most_frequent则是众数。需要注意的是,如果是constant,则可以将空值填充为自定义的值,这就要涉及到后面一个参数了,也就是fill_value。如果strategy=‘constant’,则填充fill_value的值。
imp.fit(df)
#df为read_csv和table读取的文件返回的变量,该方法提供中位数,均值等数据补全方法,采用什么方法补全取决于创建对象时参数strategy的参数值。如mean为均值填充
df = imp.transform(df)
#开始填充(按照每一列的内容,根据前面确定的填充方案填充该列缺少的数据)

例如:下面有的是自定义的数据填充

from sklearn.impute import SimpleImputer
import pandas as pd
import numpy as np

file = '班级作业提交情况1.csv'
df = pd.read_table(file, delimiter=',',header=None) 
imp = SimpleImputer(missing_values=np.nan, strategy='constant',fill_value='1') 
imp.fit(df)
df = imp.transform(df)
print(type(df))
print(df)

sklearn.impute.SimpleImputer 数据填充_第1张图片
结果为
sklearn.impute.SimpleImputer 数据填充_第2张图片
通过索引查出谁没交作业

from sklearn.impute import SimpleImputer
import pandas as pd
import numpy as np

file = '班级作业提交情况1.csv'
df = pd.read_table(file, delimiter=',',header=None) 
imp = SimpleImputer(missing_values=np.nan, strategy='constant',fill_value='1') 
imp.fit(df)
df = imp.transform(df)
x = (df[:,3] == "0")
print("Second_work没交",df[x,0])
x = (df[:,4] == "0")
print("Fouth_work没交",df[x,0])

结果为
sklearn.impute.SimpleImputer 数据填充_第3张图片

你可能感兴趣的:(python,机器学习,数据分析)