pandas处理缺失数据

《pandas处理缺失数据》

简介

在数据处理过程中经常会碰到缺失数据,pandas提供了一套处理缺失数据的方法。缺失数据通常用NaN(not a number)表示,它是一个可以被检测出来的标记。默认在所有的统计描述中都排除缺失数据。

方法

处理缺失数据有如下几种方法:

方法 描述
dropna() 根据各标签的值中是否存在缺失数据对轴标签进行过滤,可通过阈值调节对缺失值的容忍度
fillna() 用指定值或插值方法填充缺失数据
isnull() 返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA,该对象的类型与源类型一样
notnull() isnull的否定式

接下来一一介绍。

isnull()/notnull()方法

这两个方法能够判断数据中是否有缺失值,返回布尔值:

dropna()方法

可以通过dropna()方法丢弃含缺失值的数据,对于一个Series返回非空数据和索引值:

在DataFrame中使用该方法可以指定丢弃的方式,全部丢弃还是指定行或列。默认是丢弃任何含有缺失值的行:

传入关键字how='all'将只丢弃全部为NaN的行:

还可以通过axis参数指定丢弃的轴:

使用thresh参数可以控制阈值,表示至少含有thresh个非NaN值:

fillna()方法

该方法可以填充缺失值,并且可以指定填充的方式,它的参数说明如下:

参数 描述
value 用于填充缺失值的标量值或字典对象
method 插值方式,默认为前向插值‘ffill’
axis 指定填充的轴,默认为0
inplace 修改原对象而不产生副本
limit 对于前向或后向填充规定填充的最大次数

最简单的方式就是指定常数值替换缺失值:

或者可以使用一个字典对不同的列填充不同的值,把列作为key

使用method参数能够指定填充的方式:

'bfill'是指用后一行的数填充前一行,或者使用axis参数指定填充的轴:

进一步使用limit参数,可以规定填充的次数:

fillna()方法创建的都是新的对象,也可以通过inplace参数直接修改原对象:

原来的对象c已经被修改了。

总结

缺失值处理在数据处理过程当中非常常见,熟练掌握这些方法可以大大增加工作效率。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 3 =