数据清洗经验分享:什么是数据清洗如何做好数据清洗(转)N神3

大数据本身是一座金矿、一种资源,沉睡的资源是很难创造价值的,它必须经过清洗、分析、建模、可视化等过程加工处理之后,才真正产生价值。

数据加工、清洗的过程与机械加工的流水线生产过程相似。例如,从各个渠道采集到的数据质量很差,于是就需要对数据进行“脱敏”以及“包装”,最终呈现在用户面前时是一个个数据产品,这样才能提供给消费者,进行数据交易。

数据清洗的目的——发现并纠正数据文件

数据清洗是发现并纠正数据文件中可识别错误的一道程序,该步骤针对数据审查过程中发现的明显错误值、缺失值、异常值、可疑数据,选用适当方法进行“清理”,使“脏”数据变为“干净”数据,有利于后续的统计分析得出可靠的结论。当然,数据清理还包括对重复记录进行删除、检查数据一致性。如何对数据进行有效的清理和转换使之成为符合数据挖掘要求的数据源是影响数据挖掘准确性的关键因素。

附:

1、Web服务器的日志

2、某种科学仪器的输出结果

3、在线调查问卷的导出结果

4、1970s的政府数据

5、企业顾问准备的报告

1、不完整的(某些记录的某些字段缺失)

2、前后不一致(字段名和结构前后不一)

3、数据损坏(有些记录可能会因为种种原因被破坏)

因此,你必须经常维护你的清洗程序来清洗这些原始数据,把他们转化成易于分析的格式,通常称为datawrangling。接下来会介绍一些关于如何有效清洗数据,所有介绍的内容都可以由任意编程语言实现。

使用断言

这是最重要的一点经验:使用断言(Assertions)揪出代码中的bug。用断言的形式写下你对代码格式的假设,如果一旦发现有数据跟你的断言相悖,就修改这些断言。

记录是有序的?如果是,断言之!每一条记录都是有7个字段么?如果是,断言之。每一个字段都是0-26之间的奇数么?如果是,断言之!总之,能断言的都断言!

在理想世界中,所有记录都应该是整整齐齐的格式,并且遵循某种简洁的内在结构。但是实际当中可不是这样。写断言写到你眼出血,即便是出血还得再写。

洗数据的程序肯定会经常崩溃。这很好,因为每一次崩溃都意味着你这些糟糕的数据又跟你最初的假设相悖了。反复的改进你的断言直到能成功的走通。但一定要尽可能让他们保持严格,不要太宽松,要不然可能达不到你要的效果。最坏的情况不是程序走不通,而是走出来不是你要的结果。

不要默默的跳过记录

原始数据中有些记录是不完整或者损坏的,所以洗数据的程序只能跳过。默默的跳过这些记录不是最好的办法,因为你不知道什么数据遗漏了。因此,这样做更好:

1、打印出warning提示信息,这样你就能够过后再去寻找什么地方出错了

2、记录总共跳过了多少记录,成功清洗了多少记录。这样做能够让你对原始数据的质量有个大致的感觉,比如,如果只跳过了0.5%,这还说的过去。但是如果跳过了35%,那就该看看这些数据或者代码存在什么问题了。

使用Set或者Counter把变量的类别以及类别出现的频次存储起来

数据中经常有些字段是枚举类型的。例如,血型只能是A、B、AB或者O。用断言来限定血型只能是这4种之一虽然挺好,但是如果某个类别包含多种可能的值,尤其是当有的值你可能始料未及的话,就不能用断言了。这时候,采用counter这种数据结构来存储就会比较好用。这样做你就可以:

1、对于某个类别,假如碰到了始料未及的新取值时,就能够打印一条消息提醒你一下。

2、洗完数据之后供你反过头来检查。例如,假如有人把血型误填成C,那回过头来就能轻松发现了。

断点清洗

如果你有大量的原始数据需要清洗,要一次清洗完可能需要很久,有可能是5分钟,10分钟,一小时,甚至是几天。实际当中,经常在洗到一半的时候突然崩溃了。

假设你有100万条记录,你的清洗程序在第325392条因为某些异常崩溃了,你修改了这个bug,然后重新清洗,这样的话,程序就得重新从1清洗到325391,这是在做无用功。其实可以这么做:1.让你的清洗程序打印出来当前在清洗第几条,这样,如果崩溃了,你就能知道处理到哪条时崩溃了。2.让你的程序支持在断点处开始清洗,这样当重新清洗时,你就能从325392直接开始。重洗的代码有可能会再次崩溃,你只要再次修正bug然后从再次崩溃的记录开始就行了。

在一部分数据上进行测试

但是要注意,这样做的话,用于测试的子集往往不能涵盖到一些奇葩记录,因为奇葩总是比较少见的嘛。

把清洗日志打印到文件中

当运行清洗程序时,把清洗日志和错误提示都打印到文件当中,这样就能轻松的使用文本编辑器来查看他们了。

可选:把原始数据一并存储下来

当你不用担心存储空间的时候这一条经验还是很有用的。这样做能够让原始数据作为一个字段保存在清洗后的数据当中,在清洗完之后,如果你发现哪条记录不对劲了,就能够直接看到原始数据长什么样子,方便你debug。

不过,这样做的坏处就是需要消耗双倍的存储空间,并且让某些清洗操作变得更慢。所以这一条只适用于效率允许的情况下。

最后一点,验证清洗后的数据

记得写一个验证程序来验证你清洗后得到的干净数据是否跟你预期的格式一致。你不能控制原始数据的格式,但是你能够控制干净数据的格式。所以,一定要确保干净数据的格式是符合你预期的格式的。

这一点其实是非常重要的,因为你完成了数据清洗之后,接下来就会直接在这些干净数据上进行下一步工作了。如非万不得已,你甚至再也不会碰那些原始数据了。因此,在你开始数据分析之前要确保数据是足够干净的。要不然的话,你可能会得到错误的分析结果,到那时候,就很难再发现很久之前的数据清洗过程中犯的错了。

THE END
1.盘点4种常用的数据清洗方法随着大数据时代的发展,越来越多的人开始投身于大数据分析行业。当我们进行大数据分析时,我们经常听到熟悉的行业词,如数据分析、数据挖掘、数据可视化等。然而,虽然一个行业词的知名度不如前几个词,但它的重要性相当于前几个词,即数据清洗。顾名思义,数据清洗是清洗脏数据,是指在数据文件中发现和纠正可识别http://baijiahao.baidu.com/s?id=1714040949358395597&wfr=spider&for=pc
2.数据清洗的具体方法有哪些?数据清洗流程清洗数据是数据分析和机器学习项目中至关重要的一步,其目标在于识别并纠正数据集中的错误、遗漏或不一致,以提高数据质量和后续分析结果的准确性。以下是一个详细的数据清洗流程,通常包括以下几个步骤: 1.数据收集与理解 收集数据:从各种来源(如数据库、API、文件等)获取数据。 https://blog.csdn.net/Shaidou_Data/article/details/143205411
3.值得收藏!数据清洗的十类常用方法数据清洗是数据治理过程中的一个重要环节,它指的是对原始数据进行筛选、修复、转换和处理,以确保数据的准确性、完整性和一致性。 在数据清洗过程中,不仅需要明确数据清洗的对象,还需要根据具体的情况选择合适的数据清理方法。以下是不同对象所对应不同的数据清洗方法。 https://www.fanruan.com/bw/article/178453
4.hive如何做数据清洗mob64ca12d6c78e的技术博客hive 如何做数据清洗 数据清洗在数据挖掘和分析中起着至关重要的作用,它可以帮助我们识别并处理数据集中的错误、缺失、重复和不一致的数据,从而提高数据质量和分析结果的准确性。在本文中,我们将讨论如何利用Hive进行数据清洗,并通过一个实际问题和示例来演示该过程。https://blog.51cto.com/u_16213326/11228478
5.spss数据预处理包括哪些内容spss数据预处理怎么做SPSS软件作为一款广泛应用的统计分析软件,提供了一系列强大的数据预处理功能。本文将详细介绍SPSS数据预处理包括哪些内容,以及SPSS数据预处理怎么做的内容,帮助您更好地利用软件功能,提高数据分析的准确性和效率。 一、 SPSS数据预处理包括哪些内容 在SPSS中,数据预处理主要包括以下几个方面的内容: 1、数据清洗:数据https://spss.mairuan.com/jiqiao/spss-djxklq.html
6.数据分析的流程是怎样的这项工作经常会占到整个数据分析过程将近一半的时间。如果在上一步中,你的数据是通过手工复制/下载获取的,那么通常会比较干净,不需要做太多清洗工作。但如果数据是通过爬虫等方式得来,那么你需要进行清洗,提取核心内容,去掉网页代码、标点符号等无用内容。无论你采用哪一种方式获取数据,请记住,数据清洗永远是你必须要https://www.linkflowtech.com/news/626
7.阿里面试官惊叹:这种简历不用面了,直接来上班!数据库层面有没有 数据扩展? 2.QPS8W 总单量是多少 ? 3.本地缓存 怎么保证数据一致性? 4.MQ 如果挂了 怎么办? 5.Redis 集群 性能 了解吗? 6.数据清洗怎么做的? 7如何保证最终一致性? 8.顺序消息如何保证? 9.ES 怎么用的?数据量级多少?为什么用ES 不用Hbase? https://maimai.cn/article/detail?fid=1724482192&efid=gDtXEDVbtMnEeClsOjitVw
8.未经加工的数据如何处理和清洗数据清洗的第一步是将原始数据导入到一个能轻松操控和分析的环境中。Python的Pandas库是一个强大的数据处理工具,能够读取多种数据格式(如CSV和Excel)。在数据载入后,进行初步检查是一个好习惯。这包括去除多余的空格、转换文本大小写等。例如,以下代码展示了如何使用Pandas读取CSV文件: https://www.jianshu.com/p/1f71782b0323
9.如何对数据进行清洗数据清洗是数据预处理的重要环节,目的是纠正、删除或替换不准确、不完整、不合理或重复的数据,以提高数据质量和后续数据分析的准确性。 以下是对数据进行清洗的一般步骤和方法: 数据探索与评估: 在开始清洗之前,先对数据进行初步的探索,了解数据的整体情况,包括数据的类型、范围、缺失值、异常值等。 https://www.ai-indeed.com/encyclopedia/9102.html
10.机器学习中的数据清洗与特征处理综述在线清洗数据 在线清洗优点是实时性强,完全记录的线上实际数据,缺点是新特征加入需要一段时间做数据积累。 样本采样与样本过滤 特征数据只有在和标注数据合并之后,才能用来做为模型的训练。下面介绍下如何清洗标注数据。主要是数据采样和样本过滤。 数据采样,例如对于分类问题:选取正例,负例。对于回归问题,需要采集数据http://api.cda.cn/view/8897.html
11.数据清洗范文数据清洗的目的就是利用现有的技术和手段,消除或减少数据中的错误与不一致问题,将其转化成为满足数据质量要求的数据。 本文分析了从Web上抽取到的数据存在的质量问题,给出包括不完整数据和异常数据在内的属性错误以及重复与相似重复记录的描述,并提出对应的清洗方法;设计了一个由数据预处理、数据清洗引擎和质量评估三部https://www.gwyoo.com/haowen/64743.html
12.数据处理全流程解析(如何进行数据处理)当完成这几步操作后,此时数据就已经脱离APP了,开始往数仓的方向流动,数仓承担着接收数据并最终将数据落地到应用的职责。 02 数据是如何被接收的 数据在到达接入层后会经历解包、解析转换、数据清洗、数据存储四个技术流程。只有经过了这一系列的步骤,数据才能够以规整的形式呈现出来,以供下一个环节的消费。 https://www.niaogebiji.com/article-114218-1.html
13.QuickBI如何进行数据加工连接需要清洗加工的节点。 在清洗加工节点配置区域,进行以下配置。 新增计算字段 您可以按照图示步骤进入新增计算字段配置界面。 在新增字段-公式函数编辑页,输入①新建字段名称和②字段表达式,选择③字段类型,单击④确定后保存配置。 更多的计算字段示例请参见数据集的新建计算字段。 https://help.aliyun.com/zh/quick-bi/user-guide/data-processing
14.数据分析的八个流程这项工作经常会占到整个数据分析过程将近一半的时间。如果在上一步中,你的数据是通过手工复制/下载获取的,那么通常会比较干净,不需要做太多清洗工作。但如果数据是通过爬虫等方式得来,那么你需要进行清洗,提取核心内容,去掉网页代码、标点符号等无用内容。无论你采用哪一种方式获取数据,请记住,数据清洗永远是你必须要https://36kr.com/p/1491281074089859