处理缺失值

现实中的数据总是存在或多或少的缺失值现象。原因多种多样,可能是数据收集阶段发生错误,也可能数据调研阶段某些选项没有被填写。不论是什么原因造成的缺失值,我们都统一将其看做空格或者用NaN(Not a Number)表示的占位符。

不幸地是,大多数计算工具不能处理缺失值,即使我们忽略缺失值也不能产生预测结果。因此,我们必须认真对待缺失值问题。在讨论处理缺失值的方法之前,我们先创建一个例子,以便更好地理解缺失值问题:

上面的代码,我们创建了一个csv格式的变量csv_data, 然后读入DataFrame对象,注意其中两个缺失值被NaN替代了。

如果DataFrame对象包含的数据很多,人工来查找NaN就不现实了。我们可以使用isnull方法来返回一个值为布尔类型的DataFrame,判断每个元素是否缺失,如果元素缺失,值为True。然后使用sum方法,我们就能得到DataFrame中每一列的缺失值个数,还是看代码理解吧:

现在我们知道如果统计DataFrame每一列中的缺失值个数。下一节我们学习几种处理缺失值的策略。

Note 虽然scikit-learn和NumPy数组结合的很方便,但是预处理时还是推荐使用pandas的DataFrame格式而非NumPy数组。由DataFrame对象得到NumPy数组很方便,直接通过values属性即可,然后就可以用sklearn中的算法了:

results matching ""

    No results matching ""