Python学习笔记——第八弹常用的数据清洗方法③

271 阅读2分钟

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」。

在数据处理过程中,一般都需要进行数据的清洗工作,如数据集是否存在重复、是否存在缺失、数据是否具有完整性和一致性、数据中是否存在异常值等。当发现数据中存在如上可能的问题时,需要有针对性的处理,此部分朱啊哟介绍如何识别和处理重复观测、缺失值和异常值。

1. 重复观测处理

重复观测的存在影响数据分析和挖掘结果的准确性,需要做重复项删除。

#数据读入
df =pd.resd_excel(r'C:\Users\Administrator\Desktop\data_test.xlsx')
#重复观测的检测
print('数据集中是否存在重复观测:\n',any(df.duplicated))
out:
数据集中是否存在重复观测:
Ture
#删除重复项
df.drop_duplicated(inplace=True)
df

注:inplace参数,设置为True表示直接在原始数据集上做操作。

2. 缺失值处理

遇到缺失值(Python中用NaN表示)时,可采用三种方法处置,分别是删除发(比例低或高,如5%以内,85%以上)、替换法(连续变量用中位数或均值替换,离散变量用众数)和插补法(回归插补法、K近邻插补法、拉格朗日差补法)。

df =pd.resd_excel(r'C:\Users\Administrator\Desktop\data_test01.xlsx')
print('数据集中是否存在缺失值:\n,any(df.isnull())
out:
数据集中是否存在缺失值:
True
#删除法之记录删除
df.dropna()
#删除法之变量删除
df.drop('age',axis=1)
#替换法之前向替换
df.fillna(method='ffill')
#替换法之后向替换
df.fillna(method='bfill')
#替换法之常数替换
df.fillna(value=0)
#替换法之统计值替换
df.fillna(value={'gender:df.gender.mode()[0],'age':df.age.mean(),'income':df,income.media()})

3. 异常值处理

异常值指远离正常值的观测,即“不合群”观测。一般蚕蛹两种方法,一种是n个标准差法,另一个是箱线图判别法。