python--数据清洗

本文介绍了Python数据清洗的关键步骤,包括处理数据错误、缺失值和离群值。通过实例展示了如何处理年龄负值、缺失值填充、异常值检测与替换、数据映射、数值变量类型化以及创建哑变量。此外,解释了`pandas.describe()`函数的输出参数,强调了四分位数在数据描述中的作用。
摘要由CSDN通过智能技术生成

1.数据错误:

错误类型
– 脏数据或错误数据
• 比如, Age = -2003
– 数据不正确
• ‘0’ 代表真实的0,还是代表缺失
– 数据不一致
• 比如收入单位是万元,利润单位是元,或者一个单位是
美元,一个是人民币
– 数据重复


2.缺失值处理:

处理原则


1)缺失值少于20%

连续变量使用均值或中位数填补
•分类变量不需要填补,单算一类即可,或者用众数填补


2)缺失值在20%-80%

•填补方法同上
•另外每个有缺失值的变量生成一个指示哑变量,参与后续的建模


3)缺失值在大于80%

•每个有缺失值的变量生成一个指示哑变量,参与后续的建模,原始变量不使用。


3.离群值

3.1单变量离群值处理:

.绘图。
在图中找出离群的异常值,根据情况对其进行删除或者对数据进行变换从而在数值上使其不离群或者不明显。

学生化(标准化)
•用变量除以他们的标准误就可得到学生化数值

2
建议的临界值:
–|SR| >2 ,用于观察值较少的数据集
–|SR| >3,用于观察值较多的数据集

3.2多变量离群值

1.绘图。
在图中找出明显的离群值

2.聚类法确定离群值(不要对原有数据进行改变)
3

聚类效果评判指标:(群内方差(距离)最小化,群间方差(距离)最大化;这里方差可以理解为一种距离(欧式距离的平方—欧式距离))


了解清洗后,接下来,就来学习一下Python的数据清洗吧!

现在有一份心脏病患者的数据,经过问卷调查之后,最终录入数据如下:

1

  • Age:年龄
  • Areas:来自哪里,有A/B/C/D四个地区
  • ID:患者的唯一识别编号
  • Package:每天抽几包烟,缺失的为-9,代表不抽烟
  • SHabit:睡眠习惯,1-早睡早起;2-晚睡早起;3-早睡晚起;4-晚睡晚起

为了学习方便,假设这里就这些变量吧。

看完这个变量说明我不淡定了,这个数据存在很多问题啊!Age是年龄?158是什么鬼??还有6岁小孩,每天抽1包烟?ID是唯一编号吗?为什么有3个1号、2个5号、2个9号、2个10号?

 

这个数据问题太多了,因此我要逐一来清洗一下,顺便学一下数据清洗方面的知识。

1. 删除重复

3个1号、2个5号、2个9号、2个10号。这是数据录入中经常出现的问题——重复录入了,所以首先我要把那么多占空间又没用的重复数据剔除。

 

介绍两个方法:data.duplicated() 和 data.drop_duplicates(),前者标记出哪些是重复的(true),后者直接将重复删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值