pandas fillna_Pandas学习笔记04数据清洗(缺失值与异常值处理)

4a6244eab7448029cd1283a7f1dd6cd6.png4a6244eab7448029cd1283a7f1dd6cd6.png4a6244eab7448029cd1283a7f1dd6cd6.png4a6244eab7448029cd1283a7f1dd6cd6.png

点击上方"可以叫我才哥"关注我们

前3章:
Pandas学习笔记01-基础知识
Pandas学习笔记02-数据合并
Pandas学习笔记03-数据清洗(通过索引选择数据)

之前我们介绍过通过索引获取自己想要的数据,这节我们介绍在数据清洗过程中遇到缺失值、异常值时的一些处理方式以及我们需要对某列的值就行分组的时候怎么解决。

原始数据集来自本周刚抓取的创造营2020撑腰榜数据,公众号后台回复‘ 异常值’可以获得本节使用的数据集与ipynb文件。

ae409f742caafe94394ececa6a9b51f8.png
导入包及数据集

1.查看缺失值

isnullisna 可以获取 返回缺失值 的布尔值,为True则表示缺失值,False则表示非缺失值
notnull 和 notna 与上述效果相反

240f0691f73786c1657c978eb34612ee.png
查看缺失值

在对dataframe进行操作时,会对全部元素进行判断

8eb977158ba3dcde3a65de63c342bebc.png
dataframe查看缺失值
此外, df.info()也可以查看每列数据缺失值情况
ca0b9347e7d128bc6d758ac4ed691643.png
df.info()

查看缺失值的详情数据
db565e0dd480b0c70128c43554e57383.png
查看缺失值数据

2.删除缺失值

df.dropna()是用于进行缺失值删除的方法,默认情况下会删除含有缺失值的数据(行或列),我们可以通过设置参数how='all'或'any'来进行条件删除。

c9d9ccfec0fb0b984aa16f6dd418913b.png
删除缺失值数据
除了参数how之外,我们还可以设置参数 axis = 0或 1来决定删除行还是列
1c40f1a08e10e615a35733983111abdd.png
删除缺失值
any()all()方法
本质上是判定列或行各元素布尔类型的条件状态,通过这种形式我们也可以进行缺失值数据的选取。
大家可以思考一下, 如何通过这种方式删除含有缺失值的行以 及 删除全部都是缺失值的行
389f85ddad8941a18d9714fbf202d1f6.png
any和all方法

3.填充缺失值

fillna()用于进行缺失值的填充,同样我们也可以用replace进行缺失值的替换

1e71db660dadc96e3bce193b49edc70d.png
缺失值填充
在用fillna()进行缺失值填充时,我们还可以传入参数 methodlimit进行填充方向及填充范围限制
c4bd89a50680d6046722e0387daf6d6a.png
向前后填充及限制

4.值的替换

df.replace()方法进行值的替换,上面我们简单介绍过其替换缺失值的情况

6deaaaa14776c763ebf56c7d5fb73ab0.png
replace进行值的替换
同时,也可以进行多值的多值替换,通过列表或传递字典的形式
31d4dd65cf2d920e9c662c25c5061643.png
字典形式

5.离散化与分箱

我们在做数据清洗处理的时候,往往会遇到对一些数据指标进行分组的情况,比如年龄段分组

一种方式我们可以自己定义函数,然后map或apply映射进行处理,这个可拓展性很强,除了对数值类进行分组外还可以对字符串等更多类型进行自定义分组

b7901ee8ec322a647660fbc94db916aa.png
使用map+自定义函数形式进行分组

pandas也提供了一种方式, cutpcut方法,对数值型的进行分箱离散化
59b654d11cd248e5e3c11472a686c307.png
cut分箱方法
qcut按照样本分位数进行分箱
6f889dd8e0e44e2568eab126d3f6d2e9.png
qcut按照样本分位数分箱

6.异常值过滤

异常值过滤其实就是在确定异常值逻辑之后,根据布尔索引选择需要的数据

554b4b92b52a2f1d3af3b52c35735ec3.png
异常值过滤
嗨,你还在看吗?
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值