pandas计算含缺失值中列平均值_数据质量:缺失数据处理

天空澄碧,纤云不染

本文转载来源于微信公众号:

数据仓库与Python大数据

(ID:dw_zzxx)

前言

在几乎所有的数据仓库与数据分析挖掘项目中都会遇到缺失数据的存在,数据缺失会导致数据治好了变差,从而在数据分析项目中面临严重的数据问题。对于数值型数据,panda使用浮点数值NaN表示丢失的数据,本节的目标就是使用Pandas让处理丢失的数据变得尽可能轻松。

一般情况下,我们会使用变量的平均值填充数值型变量的缺失值,使用抽样模式填充类别变量的缺失值。对于数值型变量,缺失值一般暗示着变量的值为特定值(一般是0),在事先理解业务的情况下,使用实际值来补缺要远比使用补缺方法来猜测值更有意义,使用平均值补缺会使记录看起来很特别,当缺失比例比相对比较高时,会在分布中出现一个峰值,这可能会导致先前提及的数据分布问题。

变量是分类型的时候,缺失可以作为单独的类别来处理,在含缺失的记录所占的比例比较小的情况时,这种方法可能会出错,因为它为了少量的记录而为模型增加了一个参数,这时比较合适的做法就是默认的模式,如果整个变量对预测响应比较重要,还可以使用决策树。

检查缺失数据

为了更容易地检测缺失值,Pandas提供了isnull和notnull函数,它们也是Series和DataFrame对象的方法,我们通过实际案例来展示函数用法。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第1张图片

执行上面示例代码,得到以下结果。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第2张图片

从结果客户看出,存在缺失值的输出为True,都在为False。同样我们可以调用notnull函数进行缺失值判断,代码如下所示。

6a23359dda6fb70c70b5f1f2af097d96.png

执行上面示例代码,得到以下结果。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第3张图片

缺失数据的计算

这里需要特别注意的是在我们计算求和数据时,NA将被视为0,如果数据全部是NA,那么结果将是NA。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第4张图片

执行上面示例代码,得到以下结果。

8a8b1670aed8ad07cf18ef0c913fbe9d.png

填充缺失数据

Pandas提供了各种方法来清除缺失的值,fillna函数可以通过几种方法用非空数据填充缺失值,我们通过实例来说明fillna的用法。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第5张图片

执行上面示例代码,得到以下图4-32结果。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第6张图片

首先我们用0值填充缺失值,代码如下所示。

df.fillna(0)

运行程序,结果如下图4-33所示。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第7张图片

接着,我们可以用0.6替换1列的缺失值,用-1.0替换2列的缺失值,代码如下所示。

df.fillna({1:0.6, 2: -1.0})

运行程序,结果如下图4-34所示。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第8张图片

可以利用前一个索引值来填充当前的缺失值,代码如下所示。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第9张图片

运行程序,结果如下图4-35所示。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第10张图片

直接调用ffill方法来进行填充,代码如下

14e93b6c46d86357f01ff41e7863e78a.png

运行程序,结果如下图4-36所示。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第11张图片

我们也可以通过均值来填充缺失值,代码如下。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第12张图片

丢失缺失数据

如果只想排除缺少的值,则使用dropna函数和axis参数。默认情况下,axis=0,即在行上应用,这意味着如果行内的任何值是NA,那么整个行被排除。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第13张图片

执行上面示例代码,得到以下结果。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第14张图片

我们可以通过参数how='all'设置,来删除所有列均为缺失值的观测数据。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第15张图片

执行上面示例代码,得到以下结果。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第16张图片

我们可以要以同样的方式删除列,此时需要传递参数axis=1。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第17张图片

执行上面示例代码,得到以下结果,第四列被删除。

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第18张图片

1

END

1

您的关注

我们的动力

pandas计算含缺失值中列平均值_数据质量:缺失数据处理_第19张图片

电力数据治理与服务

数据 | 交流 | 分享

你可能感兴趣的:(pandas计算含缺失值中列平均值_数据质量:缺失数据处理)