每天一点python——缺失值处理
2015-12-02 16:11
453 查看
在sklearn的preprocessing包中包含了对数据集中缺失值的处理,主要是应用Imputer类进行处理。
首先需要说明的是,numpy的数组中可以使用np.nan/np.NaN(Not A Number)来代替缺失值,对于数组中是否存在nan可以使用np.isnan()来判定。
使用type(np.nan)或者type(np.NaN)可以发现改值其实属于float类型,代码如下:
因此,如果要进行处理的数据集中包含缺失值一般步骤如下:
1、使用字符串'nan'来代替数据集中的缺失值;
2、将该数据集转换为浮点型便可以得到包含np.nan的数据集;
3、使用sklearn.preprocessing.Imputer类来处理使用np.nan对缺失值进行编码过的数据集。
代码如下:
上述代码使用数组X去“训练”一个Imputer类,然后用该类的对象去处理数组Y中的缺失值,缺失值的处理方式是使用X中的均值(axis=0表示按列进行)代替Y中的缺失值。
当然也可以使用imp对象来对X数组本身进行处理。
通常,我们的数据都保存在文件中,也不一定都是Numpy数组生成的,因此缺失值可能不一定是使用nan来编码的,对于这种情况可以参考以下代码:
上述代码line模拟从文件中读取出来的一行数据,使用nan来代替原始数据中的缺失值编码,将其转换为浮点型,然后使用X中的均值填补Z中的缺失值。
转自:http://www.cnblogs.com/chaosimple/p/4153158.html
首先需要说明的是,numpy的数组中可以使用np.nan/np.NaN(Not A Number)来代替缺失值,对于数组中是否存在nan可以使用np.isnan()来判定。
使用type(np.nan)或者type(np.NaN)可以发现改值其实属于float类型,代码如下:
>>>type(np.NaN) <type 'float'> >>>type(np.nan) <type 'float'> >>> np.NaN nan >>> np.nan nan
因此,如果要进行处理的数据集中包含缺失值一般步骤如下:
1、使用字符串'nan'来代替数据集中的缺失值;
2、将该数据集转换为浮点型便可以得到包含np.nan的数据集;
3、使用sklearn.preprocessing.Imputer类来处理使用np.nan对缺失值进行编码过的数据集。
代码如下:
>>>from sklearn.preprocessingimport Imputer >>> imp = Imputer(missing_values='NaN', strategy='mean', axis=0) >>> X=np.array([[1,2], [np.nan, 3], [7,6]]) >>> Y=[[np.nan,2], [6, np.nan], [7,6]] >>> imp.fit(X) Imputer(axis=0, copy=True, missing_values='NaN', strategy='mean', verbose=0) >>> imp.transform(Y) array([[4. , 2. ], [6. , 3.66666667], [7. , 6. ]])
当然也可以使用imp对象来对X数组本身进行处理。
通常,我们的数据都保存在文件中,也不一定都是Numpy数组生成的,因此缺失值可能不一定是使用nan来编码的,对于这种情况可以参考以下代码:
>>> line='1,?' >>> line=line.replace(',?',',nan') >>> line '1,nan' >>> Z=line.split(',') >>> Z ['1','nan'] >>> Z=np.array(Z,dtype=float) >>> Z array([ 1., nan]) >>> imp.transform(Z) array([[1. , 3.66666667]])
转自:http://www.cnblogs.com/chaosimple/p/4153158.html
相关文章推荐
- Python-面向对象编程(一)
- 【python】正则表达式-group和group的区别
- python3.4 +pyqt5 +cx_freeze 打包成exe
- Python学习
- python enumerate用法
- Python在vim中的高亮显示设置方法…
- (每天一句python)两个list的交集、并集、差集
- python中if __name__ == '__main__': 的解析
- diff python2 python3
- 3.python学习笔记:python对文件的操作
- Python随手笔记之标准类型内建函数
- NLTK命名实体识别
- Python 获取当前时间
- python 学习笔记之一
- Python的编码问题
- Python 效率
- Python基础——版本的查询
- python入门--字典dict和集合set
- 学习Python
- python 单例模式的实现