首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析入门日记Day9:数据分析库Pandas:缺失值的处理

Python数据分析入门日记Day9

——数据分析库Pandas:缺失值处理

在现实生活中,我们碰到的数据往往是非常杂乱的,其中,一个数据集中存在缺失值的情况十分常见,而缺失值的存在会影响后期的数据分析或数据挖掘工作,我们应该想办法对缺失值进行一些处理。一般来说,处理缺失值常用的三种方法分别是:删除法、填补法、插值法。今天主要学习删除法和插值法。

1、删除法

当数据中的某个变量,大部分值都是缺失的,如:在“职工信息.xlsx”数据集中,应包含每一位员工的身高、体重、工资、保险等变量,但发现大多数员工的工资信息缺失,此时,就可以考虑在进行数据分析工作时剔除“工资”这一变量。

(1)定义一个新的数组arr1,且数组arr1中包含一些缺失值。其中,缺失值利用np.nan来表示。

(2)利用Pandas库中的Series函数将数组arr1转化成序列形式:

(3)pd.isnull()

Pandas数据库中的.isnull()函数是用来查看变量的数值中是否存在缺失值,如果是缺失值,返回值“True”,如果不是缺失值,返回值“False”。效果如下:

如果使用sum(pd.isnull()),则可以计算出缺失值的个数。计算得该序列中有5个缺失值。

(4).dropna()

.dropna()函数会帮助直接剔除序列中任何含有缺失值的行。

创建一个新的数据框df,包含一些缺失值:

利用.dropna()函数,发现凡是含有NaN的行都被删除了。此时,虽然缺失值的问题被处理了,但是这样的话,会导致损失大量的数据条。

当我们只想要删除所有信息都为NaN的数据行时,应该对代码做以下处理:

在.dropna()函数的“()”中填写“how=’all’”,这样,我们只删除了序列df中索引值为4的行。

2、填补法

在某一数据集中缺失值的分布不均匀时或缺失值不太多时,考虑用填补法对变量的缺失值进行补救。对于连续性变量,如果分布近似正态分布,可以用均值代替缺失值,如果变量所对应的数值所在分布是有偏的,可以用中位数对缺失值进行填补;对于离散型变量,一般考虑用众数代替缺失值。

(1).fillna()

.fillna()函数用来实现对数据的填补。比如,当希望用数字0来填补所有缺失值时,就在“()”中添加参数0,查看结果:

(2)用相邻的数据值来填补

当想要用缺失值所在位置的前一项或后一项观测值来填补缺失值时,同样用到.fillna()函数,改变“()”中参数。

若想要用前一项来代替缺失值,在“()”中输入“method = 'ffill'”。

若想要用后一项来代替缺失值,在“()”中输入“method = 'bfill'”。

(3)用指定值来代替缺失值

当填补每一个变量的缺失值都不同时,要采用以下的方式,为每个列索引(变量名称)指定替换缺失值的数字。例如:第一列中所有的NaN都需被替换成1,第二列中所有的NaN需被替换成2,第三列中的NaN被指定替换成3。

如果需要用均值、中位数或众数等来替换指定位置的缺失值时,首先,应该计算出各个变量中所有数值的均值、中位数或众数:

然后将计算出来的数值代入指定位置,对缺失值进行替换:

通过对缺失值进行合适的处理,在进行数据分析或数据挖掘时能够利用到更全的数据信息,建立出的模型也将更为准确。但缺失值的处理还要根据个人对数据和实际情况的理解,当遇到缺失数据时,想一想用什么样的值来代替它最为合适,这与我们的处理问题经验有很大的关系。今天关于数据分析库Pandas缺失值处理的小记就到这里,感谢您的阅读!无论您是老朋友还是新面孔,在阅读过程中发现什么问题,我们可以随时交流讨论哦!

Ovaltine

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190125G05FAL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券