赞
踩
在数据处理过程中,一般都需要进行数据的处理工作,如数据集是否存在重复、是否存在缺失、数据是否具有一定的完整性和一致性、数据中是否存在异常值等,当发现数据中可能存在上述问题时,都需要有针对的处理,本节主要介绍如何识别和处理重复观测、缺失值和异常值。
重复观测是指观测行存在重复的现象,重复观测的存在会影响数据分析和挖掘结果的准确性,所以在数据分析和建模之前需要进行观测的重复性检验,如果存在重复观测,还需要进行重复项的删除;下图中唯品会出现了2次。
检测数据集的记录是否存在重复,Pandas中使用duplicated方法,该方法返回的是数据行每一行的检验结果,即每一行返回一个bool值,使用drop_duplicates方法移除重复值
import pandas as pd
a = pd.read_excel('same_data.xlsx')
print("是否存在重复观测:",any(a.duplicated()))
a.drop_duplicates(inplace=True)#inplace=True时,直接删除a中的重复数据
f=pd.ExcelWriter('same_data.xlsx')
a.to_excel(f)
f.save()
数据缺失在大部分数据分析应用中都很常见,Pandas使用浮点值NaN表示浮点或非浮点数组中的缺失数据,Python内置的None值也会被当作缺失值处理,Pandas使用方法isnull检测是否为缺失值,检测对象的每一个元素返回一个bool值。
from pandas import Series
from numpy import NaN
data = Series([10.0,None,20,NaN,30])
#print(data)
print(data.isnull())
可以看出,data数据中的第二个和第四个元素都被视为缺失值
缺失值处理方法可以采用三种方法,分别是过滤法、填充法和插值法,
过滤法又称为删除法,是指当缺失的观测值比例非常低时(如5%以内),直接删除存在缺失值的观测;或者当某些变量的缺失比例非常高(如85%以上),直接删除这些缺失的变量;
填充法又称为替换法,是指用某种常数直接替换那些缺失值,例如,对于连续变量而言,可以使用均值或中位数替换;对于离散变量,可以使用众数替换
插值法是指根据其他非缺失变量或观测来预测缺失值,常见的插值法有线性插值法、K近邻插值法、Lagrange插值法。
数据过滤的dropna方法的语法格式如下:
dropna(axis=0, how='any', thresh=None)
其中:(1)axis=0表示删除行;axis=1表示删除列
(2)how参数可选值为any或all,all表示删除全有NaN的行
(3)thresh为整数类型,表示删除的条件,如thresh=3,表示一行中至少有3个非NaN值时,才将其保留
from pandas import read_excel
a=read_excel("Pdata2_33.xlsx",u)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。