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

文章目录

      • 1.查看缺失值
      • 2.删除缺失值
      • 3.填充缺失值
      • 4.值的替换
      • 5.离散化与分箱
      • 6.异常值过滤

之前我们介绍过通过索引获取自己想要的数据,这节我们介绍在数据清洗过程中遇到缺失值、异常值时的一些处理方式以及我们需要对某列的值就行分组的时候怎么解决。
原始数据集来自本周刚抓取的创造营2020撑腰榜数据,公众号后台回复‘ 异常值’可以获得本节使用的数据集与ipynb文件。
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第1张图片

1.查看缺失值

isnullisna 可以获取 返回缺失值 的布尔值,为True则表示缺失值,False则表示非缺失值
notnull 和 notna 与上述效果相反
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第2张图片

在对dataframe进行操作时,会对全部元素进行判断
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第3张图片此外,**df.info()**也可以查看每列数据缺失值情况
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第4张图片
查看缺失值的详情数据
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第5张图片

2.删除缺失值

**df.dropna()**是用于进行缺失值删除的方法,默认情况下会删除含有缺失值的数据(行或列),我们可以通过设置参数how='all’或’any’来进行条件删除。
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第6张图片除了参数how之外,我们还可以设置参数 axis = 0或 1来决定删除行还是列
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第7张图片**any()all()**方法
本质上是判定列或行各元素布尔类型的条件状态,通过这种形式我们也可以进行缺失值数据的选取。
大家可以思考一下,如何通过这种方式删除含有缺失值的行以 及 删除全部都是缺失值的行
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第8张图片

3.填充缺失值

fillna()用于进行缺失值的填充,同样我们也可以用replace进行缺失值的替换
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第9张图片在用fillna()进行缺失值填充时,我们还可以传入参数methodlimit进行填充方向及填充范围限制
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第10张图片

4.值的替换

**df.replace()**方法进行值的替换,上面我们简单介绍过其替换缺失值的情况
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第11张图片同时,也可以进行多值的多值替换,通过列表或传递字典的形式
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第12张图片

5.离散化与分箱

我们在做数据清洗处理的时候,往往会遇到对一些数据指标进行分组的情况,比如年龄段分组
一种方式我们可以自己定义函数,然后map或apply映射进行处理,这个可拓展性很强,除了对数值类进行分组外还可以对字符串等更多类型进行自定义分组
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第13张图片
pandas也提供了一种方式,cutpcut方法,对数值型的进行分箱离散化
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第14张图片
qcut按照样本分位数进行分箱
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第15张图片

6.异常值过滤

异常值过滤其实就是在确定异常值逻辑之后,根据布尔索引选择需要的数据
Pandas学习笔记04-数据清洗(缺失值与异常值处理)_第16张图片

你可能感兴趣的:(Python数据分析)