用Python进行数据清洗!

导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复、错误、缺失、异常类数据。

 

 

 

 

 

Python资源共享群:626017123

01 重复值处理

数据录入过程、数据整合过程都可能会产生重复数据,直接删除是重复数据处理的主要方法。pandas提供查看、处理重复数据的方法duplicated和drop_duplicates。以如下数据为例:

>sample = pd.DataFrame({'id':[1,1,1,3,4,5],
 'name':['Bob','Bob','Mark','Miki','Sully','Rose'],
 'score':[99,99,87,77,77,np.nan],
 'group':[1,1,1,2,1,2],})
 >sample
 group id name score
 0 1 1 Bob 99.0
 1 1 1 Bob 99.0
 2 1 1 Mark 87.0
 3 2 3 Miki 77.0
 4 1 4 Sully 77.0
 5 2 5 Rose NaN

发现重复数据通过duplicated方法完成,如下所示,可以通过该方法查看重复的数据。

>sample[sample.duplicated()]

group id name score

1 1 1 Bob 99.0

需要去重时,可drop_duplicates方法完成:

>sample.drop_duplicates()
 group id name score
 0 1 1 Bob 99.0
 2 1 1 Mark 87.0
 3 2 3 Miki 77.0
 4 1 4 Sully 77.0
 5 2 5 Rose NaN

drop_duplicates方法还可以按照某列去重,例如去除id列重复的所有记录:

>sample.drop_duplicates('id')
 group id name score
 0 1 1 Bob 99.0
 3 2 3 Miki 77.0
 4 1 4 Sully 77.0
 5 2 5 Rose NaN

02 缺失值处理

缺失值是数据清洗中比较常见的问题,缺失值一般由NA表示,在处理缺失值时要遵循一定的原则。

首先,需要根据业务理解处理缺失值,弄清楚缺失值产生的原因是故意缺失还是随机缺失,再通过一些业务经验进行填补。一般来说当缺失值少于20%时,连续变量可以使用均值或中位数填补;分类变量不需要填补,单算一类即可,或者也可以用众数填补分类变量。

当缺失值处于20%-80%之间时,填补方法同上。另外每个有缺失值的变量可以生成一个指示哑变量,参与后续的建模。当缺失值多于80%时,每个有缺失值的变量生成一个指示哑变量,参与后续的建模,不使用原始变量。

在下图中展示了中位数填补缺失值和缺失值指示变量的生成过程。

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值