数据分析中的数据清洗怎么做?

数据分析整个框架里面比较关键除了模型本身以外,更多依赖的是丰富高质量的数据源。在数据收集时需要捕获有关源的关键元数据,如来源、大小、时效性和相关内容的额外知识。迭代地识别当前数据资产基础和这些数据源的差距,使用分析、可视化、 挖掘或其他数据科学方法探索这些数据源,以定义模型算法输入或模型假设。

由于原始数据中或多或少存在一些缺失、损坏的脏数据。如果不处理会导致模型失效。就好比,一个水平很高的厨师,给到的原材料如果不卫生不干净,那也很难做出一道让人满意的菜品。因此在整合数据建立模型之前, 应先评估数据的质量。对数据进行清洗。

当然,数据清洗除了能保障高质量的数据输出之外。也能够同步对数据探索。数据清洗和数据探索的作用是相辅相成的,通过数据探索,检阅数据的特征描述、分布推断以及结构上的优化,能更好的为数据清洗选择合适的清洗方法。而数据清洗后的数据则可以更有效的进行数据探索。本文重点讲解数据清洗的一些方法和注意事项。接下来,介绍数据清洗的两个重要部分:异常值判别和缺失值处理。

01 异常值判别

数据清洗的第一步是识别会影响分析结果的“异常”数据,然后判断是否剔除。异常值通常有以下几个表现:

(1)缺乏完整性

完整性即记录数量名称是否完整,内部数据由于属于企业内部自己生产的数据,相对而言比较好掌控检查。而如果是采购的外部数据,例如:城市土地人口宏观数据或者某城的二手房交易数据,则完整性需要外部数据供应商提出相应保障。

(2)缺乏准确性

收集的数据必须要能够正确反映业务需求,否则分析结论会对业务造成误导。这方面的检查,需要首先理解业务背景,第二需要判断收集的此类数据以及数据项是否可以转换为分析项目所需数据。如果部分数据不符合业务逻辑,或者数据准确性很差,则对数据分析造成很大的影响。

(3)缺乏唯一性

数据的唯一性应该从两个角度检查,常见的错误是多个数据一个编码,例如产品住宅,产品商铺都是同一编码,或者同时一个实物对应多个编码。如果导入系统,系统需要能够识别,否则将会影响分析主体的唯一性。

目前常用的识别异常数据的方法有物理判别法和统计判别法:

物理判别法:根据人们对客观事物、业务等已有的认识,判别由于外界干扰、人为误差等原因造成实测数据偏离正常结果,判断异常值。例如常见的年月日基本信息,显示值为:1900年1月1日。这种判别方式需要人工干预,检查的工作量较大,如果没有找到数据之间的关联关系容易出错漏处理。

统计判别法:通过系统设定一个置信概率,并确定一个置信上下限,凡超过此限的误差,就认为它不属于随机误差范围,自动判定为异常值。这种方法高效明确,且不会遗漏错误脏数据。常用的方法有:拉依达准则、肖维勒准则、格拉布斯准则、狄克逊准则、t检验等。(具体描述查看下图)

这种系统判别并进行删除异常值的方式虽然高效,但也存在风险。因为每个方法不尽相同,得出的异常值也有可能存在偏差。为了减少这种误删的概率,可以将多种统计判别方法结合使用,并且要找出异常值出现的原因。是手工录入错误还是数据接收过程中出错。同时,如果发现有多个异常值,建议逐个删除,即删除一个后再进行检验。

02 缺失值处理

在数据缺失严重的情况下,分析结果会失真。因此需要将缺失值进行填补,传统方式检查出来的空值有人工进行补充,但是需要补充人员找到相关资料检验无误后再进行填补。当然如果对于结果要求并不是特别大,且我们能通过数据找到规律的情况下,可以采用合理的方法自动填补空缺值。例如:可以根据身份证号码,自动判断人员的性别。常见的方法有平均值填充、K最近距离法、回归法、极大似线估计法等。(具体描述查看下图)

值得注意的是,数据收集的过程中,如果对于某个字段要求必输,则可以通过系统导入时自动判断是否为null,如果为null则导入不成功,从源头控制数据质量。

当然,我们在做数据分析的过程中,也要看数据量的大小。一般情况下数据量越大,异常值和缺失值对整体分析结果的影响会逐渐变小。所以,在“大数据”模式下,如果异常值和缺失值较小的情况下,可以忽略减轻部分工作量,而侧重对数据结构合理性进行分析。

03 格式内容清洗

如果数据是由系统日志而来,那么通常在格式和内容方面,会与元数据的描述一致。而如果数据是由人工收集或用户填写而来,则有很大可能性在格式和内容上存在一些问题,简单来说,格式内容问题有以下几类:

1、字段显示格式不一致

这种问题通常与输入端有关,在整合多来源数据时也有可能遇到,将其处理成一致的某种格式即可。

2、内容中有不该存在的字符

某些内容可能只包括一部分字符,比如身份证号是数字+字母,中国人姓名是汉字(赵C这种情况还是少数)。最典型的就是头、尾、中间的空格,也可能出现姓名中存在数字符号、身份证号中出现汉字等问题。这种情况下,需要以半自动校验半人工方式来找出可能存在的问题,并去除不需要的字符。

3、内容与该字段应有内容不符

姓名写了性别,身份证号写了手机号等等,均属这种问题。但该问题特殊性在于:并不能简单的以删除来处理,因为成因有可能是人工填写错误,也有可能是前端没有校验,还有可能是导入数据时部分或全部存在列没有对齐的问题,因此要详细识别问题类型。

格式内容问题是比较细节的问题,但很多分析失误都是栽在这个坑上,比如跨表关联或VLOOKUP失败(多个空格导致工具认为“张三”和“张 三”不是一个人)、统计值不全(数字里掺个字母当然求和时结果有问题)等等,需要大家重点关注。

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
数据分析基于商业目的,有目的地进行收集、整理、和分析数据,提炼出有价值的信息的一个过程。整个过程致可分为五个阶段,具体如下图所示。 数据分析的过程 关于图流程的相关说明具体如下。 1.明确目的和思路 在进行数据分析之前,们必须要搞清楚几个问题,比如数据对象谁?要解决什么问题?并基于对的理解,整理出分析的框架和思路。例如,减少新客户的流失、优化活动、提高客户响应率等。不同的对数据的要求不一样的,使用的分析手段也不一样的。 2.数据收集 数据收集按照确定的数据分析思路和框架内容,有目的地收集、整合相关数据的一个过程,它数据分析的基础。 3.数据处理 数据处理指对收集到的数据进行清洗、、整理,以便展数据分析,它数据分析前必不可少的阶段。这个过程数据分析整个过程最耗时的,也在一定程度上保证了分析数据的质量。 4.数据分析 数据分析指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从发现因果关系、内部和规划,为商业决策参考。 到了这个阶段,要想驾驭数据展数据分析,就要涉及到工具和方法的使用,其一要熟悉常规数据分析方法及原理,其二要熟悉专业数据分析软件的使用,比如Pandas、Maltlab等,以便进行一些专业的数据统计、数据建模等。 5.数据展现 数据分析的流程是什么?如何数据分析?全文共1页,当前为第1页。俗话说:字不如表,表不如图。通常情况下,数据分析的结果都会通过图表进行展现,常用的图表包括饼图、折线图、条形图、散图等。借助图表这种展现数据的手段,可以更加直观地让数据分析师表述想要呈现的信息、观和建议。 数据分析的流程是什么?如何数据分析?全文共1页,当前为第1页。 数据分析的流程是什么?如何数据分析? 1 1
### 安居客出租房(武汉为例)爬虫+数据分析+可视化 这个爬虫是我前段时间在淘宝上单子的时候遇见的一个客户需求。本来以为就是一个简单的爬虫项目。但后面客户加了数据清洗数据分析的要求。而后又加了要详细代码解释的需求等等。直到最后客户坦白说这是他们大专的毕设.......但是这个单子坐下来只有200左右,我想了一下,感觉好亏啊。在淘宝上随便找一个毕设的都要好多钱的,而且客户本身的代码能力、数学、逻辑能力都很差,导致我每行都给注释以及看不懂,在我交付代码后又纠缠了我一个多礼拜。反正总体下来的感觉就是烦躁。头一次感觉到了客户需求变更带来的巨大麻烦。 总之这是一次不是很愉快的爬虫经历。但是作为我写爬虫以来注释最详细的一次,以及第一次真正使用像matplotlib这种数据分析库的代码,我认为还是有必要分享出来给大家当个参考的(PS:大佬轻拍~)。爬虫本身几乎没有什么难度,写的也比较乱,敬请见谅。 **功能** 爬取安居客上的出租房信息(武汉地区的),并通过爬取的数据进行数据清洗以及数据分析。给出四个不同层面的可视化图。最终结果如下图所示: ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/1.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/2.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/3.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/4.png) **环境** 1. Windows 10 2. python3.7 **使用方法** 首先声明该爬虫由于是特定情况下写的,所以本身的通用性特别差,仅可以对安居客网站上的武汉的出租房信息进行爬取,且需要自己手动更新cookie。同时在对数据进行分析及可视化的时候由于也是特别针对武汉出租房的进行的,所以针对性也比较强。如果别的需求需要自己进行更改。 1. 访问[安居客网址](https://wuhan.anjuke.com/),获取cookie。 > tip:获取cookie的方法可根据[此链接](https://jingyan.baidu.com/article/5d368d1ea6c6e33f60c057ef.html) 2. 在项目找到`spider.py`的文件,将第12行的cookie换成你自己的cookie。 3. 运行`spider.py`,获取房源信息。运行后应会产生一个`武汉出租房源情况.csv`的文件。此文件为我们从安居客上爬取的房源信息,其包含`房屋租住链接、房屋描述、房屋地址、房屋详情(户型)以及经纪人、房屋价格`五个属性。 4. 在获取了数据之后我们运行`matplotlib.py`文件。进行数据清洗,分析,可视化。运行后即可获得**功能**展示四个图片。 **技术栈** 1. request 2. parsel 3. pandas 4. matplotlib **进步(相比之前)** 此次爬虫相比之前的技术上可以说有减无增。但其注释相当详细,可谓是每行代码都有注释。所以对于初学者应该有一些用处。同时使用matplotlib进行了数据分析可视化等。对于数据处理的代码的注释也是几乎每行都有注释的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成于念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值