数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复、错误、缺失、异常类数据。
一、 重复值处理
数据录入过程、数据整合过程都可能会产生重复数据,直接删除是重复数据处理的主要方法。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方法完成:
#Python学习 dtype: float64
当然还可以以分位数等方法进行填补:
>sample.score.fillna(sample.score.median())
0 99.0
1 82.0
2 87.0
3 77.0
4 77.0
5 82.0
Name: score, dtype: float64
3. 缺失值指示变量
pandas数据框对象可以直接调用方法isnull产生缺失值指示变量,例如产生score变量的缺失值指示变量:
>sample.score.isnull()
0 False
1 True
2 False
3 False
4 False
5 True
Name: score, dtype: bool
若想转换为数值0,1型指示变量,可以使用apply方法,int表示将该列