欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python如何读dat数据_如何用Python进行数据质量分析

发布时间:2025/4/17 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python如何读dat数据_如何用Python进行数据质量分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

概述

数据挖掘的第一步工作是数据准备,而数据准备的第一步就是数据质量分析了。本篇文章着重介绍如何使用Python进行数据质量分析的初步工作,属于比较基础的入门教程。

为什么要进行数据质量分析

根据百度百科的定义,数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。

我们在生活、工作中无时无刻不在产生数据。整个自然界、人类社会更是每天都会产生大量的数据。数据是客观存在的,不会以某一个人的意志为转移。而相对于某一个人或某一个个体,他可能只关心数据中的某些有价值的信息,这就需要在浩瀚的数据海洋中捞取那几条他喜欢吃的鱼。

由于数据来源、数据传输环节、数据储存过程等都有可能使数据被污染,所以我们在使用数据之前非常有必要对数据的质量进行评估。质量评估的工作可能包括:将缺失的数据补齐、对一些异常值进行处理、使数据保持一致性等。

数据质量分析这个事,和我们把碗盘摆进洗碗机之前做的事比较像。

数据质量分析的一般流程

凡事皆有章法,数据质量分析也不例外。数据质量分析的一般流程如下:

  • 首先,我们要先把数据导入我们数据质量分析的框框之内。也就是说,我们想要对之进行质量分析的数据,你首先要从别的地方给拿过来。这个工作可能是把数据从硬盘中读入内存中年,或者从其它业务系统把数据给提取出来等等。
  • 其次,我们要先重点处理其中缺失的值。比如说我们要分析一个班的同学的成绩分布情况,首先当然是要先把没有成绩的同学找出来,看是忘记录入成绩了还是转专业走了。根据实际情况,我们可能需要对缺省的值进行补齐、或者直接删除那条缺少了数据的整条记录。
  • 接下来,要对数据中的异常数据进行处理了。异常数据,往往是指的明显不合常理的数据。比如说:一个人的年龄260岁、一个学生的单科成绩是152分(满分150分)等等。当然,实际数据处理中异常值不会如此简单。实际中的不合常理的这个理,就是我们给这批数据制定一条规则,对不符合这条规则的数据我们都看成异常值。比如3σ原则,指的是服从正态分布的一组数据,如果方差为σ,那么一个数与平均值的差的绝对值大于3σ的概率非常小(小于等于0.003)。举个例子来讲就是,如果一个国家的平均身高是1.7米、方差是0.1米的话,你在大街上遇到一个2米身高的人的概率只有0.003,换句话说如果你采集到的身高的数据里出现了很多身高2米的人,你就有理由怀疑你的尺子出问题了。
  • 异常数据分析还有一种常用的方法叫箱型图分析。就是,一组数我们按照一定方法规定一个上边界、一个下边界,超出上下边界的数就认为是异常值。而上边界,我们这样来定义,如果一个数值Qu,这组数中75%的数都小于它,我们把这个数定义为上四分位数。类似方法,我们定义一个下四分位数Ql。那在Qu的基础上再加上1.5倍的(Qu-Ql),定义为上边界;在Ql的基础上减去1.5(Qu-Ql),定义为下边界。
  • 数据一致性分析,简单说就是同一条记录的同一个属性可能有两个不同的值,导致数据不一致。比如,学校的健康系统记录了一个孩子的身高、体重数据、社区医院的系统里面也记录了这个孩子的身高、体重数据,但是因为采集时间点不一样,这两个数据是不一样的,更高一级的数据挖掘系统把这两个业务系统关于这个孩子的身高、体重数据提取过来后,就出现了不一致这个问题。
  • 下面我们通过要一个简单的例子来看看利用Python进行数据质量分析的一般流程。

    凡事皆有章法

    一个简单的例子

    这个例子很简单。我们假设有一组数据,然后我们使用箱型图法把这组数据中的异常值给剔出来。

    箱型图的概念很容易理解,如下图所示。只要把上四位数Qu、下四位数Ql找出来就可以了,在Python中要完成这个工作非常容易。

    箱型图示例

    我们需要用到pandas库,所以先把pandas库引入进来

    import pandas as pd

    接下来,我们把数据从硬盘读入内存,假设我们的数据名称是"atering_sale.xls"。数据源是后面标注的参考书中第一个案例数据。使用下面这两行命令来读取:

    catering_sale = '../data/catering_sale.xls' data = pd.read_excel(catering_sale, index_col=u'日期')

    上面代码中,我是把实验室据放在data目录下、python文件放在code目录下,也就是说运行这个python文件的时候把运行环境的当前路径改在了code这个目录下。然后使用"../"找到code的上一级目录,然后再找上级目录的data子目录下的catering_sale.xls文件。

    第二行,调用pandas的read_excel函数读取excel文件。其中的index_col参数是指将excel文件中的“日期”这一列指定为行的索引。

    Python文件在code目录下

    read_excel方法返回的是一个DataFrame,查看返回值data的前5行如下图所示:

    data前5行

    接下来,导入matplotlib,代码如下:

    import matplotlib.pyplot as plt #导入图形库 plt.rcParams['font.sans-serif']=['Simhei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

    然后,建立一个图例,使用DataFrame的boxplot方法画箱型图。

    最关键的一行就是"p = data.boxplot(return_type='dict') #画箱线图",这一行返回的是一个字典项的量。它的fliers里面记录了异常值。

    然后使用下面的命令,把异常值标记到plt的figure上。

    for i in range(len(x)): if i>0:plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))else:plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))

    然后调用show命令把画好的图显示出来就行了。

    plt.show() #展示箱线图

    结果如下:

    箱型图

    参考:

    《Python数据分析与挖掘实战》,张良均 著,机械工业出版社。

    总结

    以上是生活随笔为你收集整理的python如何读dat数据_如何用Python进行数据质量分析的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。