基于Pandas的数据预处理方法介绍

2020-11-10 07:16翟高粤
科学与财富 2020年27期
关键词:统计分析

摘要:本文先介绍数据预处理的定义和概念,然后对常用的数据预处理方法进行详细介绍,包括合并数据、清洗数据、标准化数据和转换数据,并举例说明其实现方法,本文对从事大数据和人工智能的研究人员在数据预处理方面具有一定的参考价值。

关键词:Pandas;数据预处理;统计分析

0     引言

数据预处理是指对数据进行合并、清洗、标准化和变换并直接用于分析建模的过程的总称[1]。其中,数据合并可以把多张相互关联的表格合成一张表格;数据清洗可以去掉缺失、重复、异常或者不一致的数据;数据标准化可以去除特征间的量纲差异;数据变换则可以通过离散化、哑变量处理等技术满足后期分析与建模的数据要求。

1     Pandas介绍

Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas的两个主要功能是DataFrame和Series,DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。Series是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。Pandas是一个强大的数据处理工具,使用Pandas可以方便地进行各种原始数据的预处理。

2     使用Pandas进行数据预处理方法介绍

2.1  合并数据

Pandas合并数据主要有三种方法,分别是是堆叠(横向或纵向)合并数据、主键合并数据和重叠合并数据。

堆叠合并就是简单地把两个表合并在一起,根据x轴或者y轴的合并方向,可分为横向或者纵向合并,其中横向合并可以用concat函数完成,而纵向合并可以用append函数完成。

主键合并就是通过一个或者多个键将两个数据集的行进行连接,类似与SQL中的join函数。针对两张包含不同字段的表,将其根据某几个字段一一对应拼接起来,结果集的列数为两个原数据的列数和减去连接键的数量。Pandas中的merge函数可以实现主键合并。

重叠合并主要是用来处理数据分析中偶尔会出现两份数据的内容几乎一致的情况,但是某些特征在其中一张表上是完整的,而在另外一张表上的数据则是缺失的。Pandas中的combine_first函数可以实现重叠数据的合并。

2.2  清洗数据

数据重复会导致数据的方差变小,数据分布发生较大的变化[2];而数据的缺失会导致样本信息减少,不仅增加了数据分析的难度,而且会导致数据分析的结果产生偏差。异常值则会产生“伪回归”。数据清洗就是对数据进行检测,查询是否有重复值、缺失值和异常值,并且对这些数据进行适当的处理。

清洗数据主要包括检测与处理重复值、检测与处理数据缺失值和检测与处理数据的异常值三个方面内容。处理重复数据是数据分析经常面对的问题,对重复数据进行处理前,需要分析重复数据产生的原因以及去除这部分数据后可能造成的不良影响。常见的数据重复分为两种:一种是记录重复,即一个或者多个特征的某几条记录的值完全相同;另一种是特征重复,即存在一个或者多个特征名称不同,但数据完全相同的情况。

2.2.1      记录重复的处理

下面介绍几种处理数据表中记录重复的方法。

(1)利用list去重

假如表中的某一个特征字段存放了该特征的类别信息,要找出该特征字段中唯一的不重复的类别信息,可以采用list去重的方法。关键代码如下所示:

def delRep(list1):

list2=[]

for i in list2:

if i not in list2:

list2.append(i)

return list2

(2)利用set特性去重

set集合的特点是不能存储相同的信息,利用这个固有的特性,可以达

到自动去重的目的。关键代码如下:

print‘(去重前的总数:,len(list1))//去重前的总数:1040

list2=set(list1)

print‘(去重后的总数:,len(list2))//去重后的总数:68

2.2.2      特征去重

结合相关的数学和统计学知识,要去除连续的特征重复,可以利用特征间的相似度将两个相似度为1的特征去除一个。在pandas中,相似度的计算方法为corr。例如使用pearson法求出表中的counts和amounts两列的相似度矩阵,部分代码如下所示:

#求出销量和售价的相似度

corrDet=detail[‘[count,amounts]].corr(method=pearson)

print‘(销量和售价的pearson法相似度矩阵为:,corrDet)

打印输出:

销量和售价的pearson法相似度矩陣为:

Counts amounts

counts   1.0  0.8321

amounts0.8321   10

2.2.3      检测与处理缺失值

数据中的某个或某些特征的值是不完整的,这些值称为缺失值。pandas提供了识别缺失值的方法isnull以及识别非缺失值的方法notnull,这两种方法在使用是返回的都是布尔值。结合sum函数和isnull、notnull函数,可以检测数据中缺失值的分布以及数据中一共含有多少个缺失值。部分关键代码如下:

print‘(detail每个特征缺失的数目为:\n,detail.isnull().sum())

print‘(detail每个特征非缺失值的数目为:\n,detail.notnull().sum())

2.2.4      检测与处理异常值

异常值是指数据中个别值的数值明显偏离其余的数值,也称为离群点,检测异常值就是检验数据中是否有输入错误以及是否含有不合理的数据。异常值的存在对数据分析十分危险,如果计算分析过程中的数据有异常值,会对计算结果产生不良的影响,从而会导致分析结果产生偏差乃至错误。常用的异常值检测主要有3σ原则和箱线图分析两种方法。

3σ原则又称为拉依达准则。该原则就是先假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间就属于异常。该判别处理方法适用于对正态或近似正态分布的样本数据进行处理。

箱体图分析法提供了识别异常值的一个标准,即异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。其中QL称为下四分位数,表示全部观察值中有四分之一的数据取值比它小;QU称为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR称为四分位数的间距,是上四分位数QU与下四分位数QL之差,其间包含了全部观察值的一半。

2.3  标准化数据

不同的特征之间往往具有不同的量纲,由此所造成的数值间的差异可能很大,在涉及空间距离计算或梯度下降法等情况时,不对其进行处理会影响到数据分析结果的准确性,为了消除特征之间量纲和取值范围差异可能会造成的影响,需要对数据进行标准化处理。

2.3.1      离差标准化数据

离差标准化数据是对原始数据的一种线性变换,结果是将原始数据的数值映射到[0.1]区间,其转换公式如下所示:

X*=(X-min)/(max-min),其中,max为样本数据的最大值,min为样本数据的最小值,max-min为极差。离差标准化保留了原始数据值之间的联系,是消除量纲和数据取值范围最简单的方法。

2.3.2      标准差标准化数据

标准差标准化是当前使用最广泛的数据标准化方法。经过该方法处理的数据均值为0,标准差为1,其转换公式如下所示:

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

2.4转换数据

数据即使经过了清洗、合并和标准化以后,还不能直接拿来做分析建模,为了能够将数据分析工作继续进行,需要对数据做一些合理的转换,使之符合分析要求。

常用的轉换数据处理方法如下:

(1) 哑变量处理类别型数据

(2) 使用等宽法、等频法和聚类分析方法离散化连续型数据

3总结

本文先介绍数据预处理技术的特点和作用,并详细说明数据预处理的四种技术:数据合并,数据清洗,数据标准化,数据转换的定义和应用,这四种技术并不存在严格的先后关系,在实际工作中往往交叉进行。本文对于从事大数据和人工智能的人员具有一定参考意义和帮助作用。

参考文献:

[1] 谈文蓉,王金壅等.城市地下管网运维大数据预处理技术研究[J],西南民族大学学报(自然科学版),2020(7).

[2] 李康.探究大数据处理过程中的数据质量影响[J],网络安全技术与应用,2020(8).

作者简介:

翟高粤(1975.11-),男(汉),广西钦州,硕士,副教授,研究方向:软件理论,人工智能

猜你喜欢
统计分析
SPSS软件在教学统计分析中的应用
多元统计分析在企业经济效益评价中的应用
近年退役士兵培训研究内容的数据统计与评析
SQL生成器设计与实现
2004—2005年国家社会科学基金重大项目立项项目的计量研究
2015年各省区煤矿死亡事故统计分析
以统计分析为基础的房地产税收优化分析
SPSS在高校图书馆服务体系中的应用研究