Pandas学习总结——6. 缺失数据处理

本文详述了Pandas中缺失数据的特性,包括三种缺失值符号:np.nan、None和NaT,并介绍了Nullable类型以统一处理。此外,文章讨论了缺失数据的运算规则,如普通运算和groupby中的处理。重点讲解了缺失值处理方法,如fillna的值填充、前后向填充,dropna的剔除策略,以及interpolation的各种插值方法,包括线性插值和高级插值。
摘要由CSDN通过智能技术生成

内容简介: 本篇首先介绍Pandas中的三种缺失值符号,针对其弊端介绍Nullable类型和NA符号,最后讲述了填充、剔除和插值三类缺失值处理方法。

缺失数据在数据预处理过程中非常常见,针对缺失数据Pandas有一定的解决方法,下面来简单介绍。

1 缺失值特性

缺失值可以通过isnanotna方法来查看,返回布尔值或布尔表。用info可以查看缺失信息。

1.1 三种缺失值符号

(1) np.nan

  • 不等与任何东西,甚至不等于自己
  • 在用equals函数比较时,自动略过两侧全是np.nan的单元格
  • 将原本整数的列变为浮点型
  • 布尔型数据的表中若用np.nan填充,所有值自动变为True
  • 修改布尔列表的值为np.nan,改变表类型

(2) None

  • np.nan相比,至少等于自身,即None == None结果为True
  • 布尔值为False
  • 修改布尔列表不会改变数据类型
  • 在传入数值类型后,会自动变为np.nan
  • 使用equals函数时不会被略过

(3 )NaT

  • 针对时间序列的np.nan
  • 与自己不等
  • 使用equals是也会被跳过
1.2 Nullable类型

为了解决上面三种类型带来的混乱与缺失值处理方法不统一问题,官方库在1.0后引入了Nullable类型。

它的好处就在于:前面提到的三种缺失值都会被替换为统一的NA符号,且不改变数据类型。

(a)整形Nullable
对原来的int改为Int

s_new = pd.Series([1, 2], dtype="Int64")

在这里插入图片描述
(b)布尔 Nullable
记号为boolean

s_new = pd.Series([0, 1], dtype="boolean")

(c)String类型
记号为string,可以有效区分原本含糊不清的Object类型。

  • 本质上也属于Nullable类型,因为并不会因为含有缺失而改变类型
  • 调用字符方法后,string类型返回的是Nullable类型,object则会根据缺失类型和数据类型而改变
s = pd.Series(['dog','cat'],dtype='string')

在这里插入图片描述

1.3 convert_dtypes方法

这个函数的功能往往就是在读取数据时,就把数据列转为Nullable类型,是Pandas 1.0的新函数

pd.read_csv('data/table_missing.csv').dtypes

在这里插入图片描述

pd.read_csv('data/table_missing.csv').convert_dtypes().dtypes

在这里插入图片描述

2 缺失数据的运算规则

2.1 普通运算
  • 使用加法时,缺失值为0
  • 使用乘法时,缺失值为1
  • 使用累计函数时,缺失值自动略过
2.2 groupby方法中的缺失值
  • 自动忽略
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值