数据缺失值补全方法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)
![读取的文件(需要填充数据的文件)](https://img-blog.csdnimg.cn/20200414234306138.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0dXNzcw==,size_16,color_FFFFFF,t_70)
结果为
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200414234441659.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0dXNzcw==,size_16,color_FFFFFF,t_70)
通过索引查出谁没交作业
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])
结果为
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200414234751254.png)