加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据洗濯的履历与教导 Data Cleaning

发布时间:2018-04-07 20:28:24 所属栏目:大数据 来源:站长网
导读:小学的时辰我统计过同窗里有几多要订课间牛奶:每人别离必要什么口胃和什么巨细,应收几多钱。最后这份凭证座位排序的表格要和一张学号表格凭证同窗姓名对应起来,并计较每种口胃订购数目和每人应收款。进程中我碰着了许多坚苦,譬喻有同窗订了多种口胃,

小学的时辰我统计过同窗里有几多要订课间牛奶:每人别离必要什么口胃和什么巨细,应收几多钱。最后这份凭证座位排序的表格要和一张学号表格凭证同窗姓名对应起来,并计较每种口胃订购数目和每人应收款。进程中我碰着了许多坚苦,譬喻有同窗订了多种口胃,有同窗的信息被挂号到了此外同窗那一行——这应该是我最早的数据洗濯经验。当时辰碰着的题目此刻也不绝碰着,只是手动复制粘贴一个 40 行 4 列的 Excel 表格比此刻做的简朴许多。

数据网络、清算凡是占整个研究 70% – 90% 的时刻。必然在打算的时辰要给足时刻,布置好清算数据同时可以做的其他事项(写出文章根基框架、阅读文献等)。

筹备事变

把原始数据单独生涯在一个文件夹里,永久不要窜改,标志它们的来历(开源网站?本身抓取?本身网络?数据库购置?)。在处理赏罚数据前,必然要想好你处理赏罚后的数据怎样能和原始数据对应起来,譬喻通过变量名可能标识符(identifier)。 这个步调很重要,由于假如你发明最终数据有误,还能通过变量名或标识符找到错误的源头。

在开始处理赏罚数据前,把数据布局相识清晰。最好把下列题目的谜底写在一个文档里:你有哪几个数据集,别离叫什么名字、长什么样(几行几列,单元是什么:是小我私人-每年层面的数据,照旧国度-每月的数据);你的方针是什么(归并?算每个子集的中位数?同一单元?归并或同一单元的目标又是什么?为什么我的研究要求我这么做?);要用的变量叫什么名字,输出的变量叫什么名字、长什么样,奈何应用到接下来的说明中。

以上步调听起来很简朴,乃至没有做的须要。可是数据集多了、处理赏罚内容伟大了往后,很轻易弄混变量名,健忘最终目标(即“这个洗濯过的数据集到底和我最终研究目标有什么相关”)。假如你的项目扳连到第三方(譬喻公司或当局数据提供方),研究战线会拖得很长,也许你一月处理赏罚好数据集 A,三月观测公司才把数据集 B 给你,你看了一眼 B 发明又必要数据集 C。等你五月开始归并 A、B、C 的时辰,你已经健忘 A 到底是用来做什么的了。

写清晰变量与步调在小我私人项目中已经很是重要,在相助项目中虽然必不行少。多人相助中弄错变量寄义、弄混文件版本是常见且头疼的题目。

2 (1)

进程中

不管是多小的数据集,万万不要手动在 Excel 可能 TXT 编辑器内里手动修改数据,由于这些软件不会自动记录你做过的编辑,时刻久了你也许会健忘本身做过什么。假如非要手动修改,提议在一个文档里完备写下你窜改的内容。凡是只有批量手动录入数据才会必要 Excel。

确认视察值名称(即第一列内容)是奇异的。凡是视察值名称都没有一再(好比国度名、小我私人证件号码等),但有些环境下视察值也许会重名(好比都市名、人名)。这时辰你必要加上本身的标识符,以免后期做聚合、归并的时辰堕落。

常常搜查数据类(data types,譬喻 numeric/character/logical/factor)。数据类假如差池,凡是你的呼吁无法执行,软件会报错。但偶然辰刚好可以执行,软件也不会报错。这时辰假如你没有搜查数据类,很也许就带着错误的数据进入下一行运算。相同的环境在 Excel 里很常见,譬喻 Excel 会自动把一些数据酿成日期名目,你不在意的话最后输出就错了。虽然,数据说明软件比 Excel 好的处所是你随时都可以取消呼吁。

警惕处理赏罚“无数据”(NA)。必然要搞清晰你的软件怎样看待“无数据”(NA)——有的软件在运算、归并的时辰会自动忽略 NA 且不给你提示,这个做法在许多科学研究里是错的,以是你到手动搜查数据集里是否有 NA,并汇报软件应该奈何处理赏罚它们。其它,NA 在许多软件里都是逻辑(logical)而不是字符(character)类数据。假如你要键入可能判定 NA,必然要用逻辑 NA 而不是字符 NA。

归并数据集前,必然要相识清晰差异种“归并”(merge)呼吁的区别,且要想一个要领来搜查归并是否乐成。归并长短常轻易堕落的步调,纵然你用的呼吁是正确的,也会由于数据自己的小题目而失败。举个简朴的例子,一个没有问题行的数据集,它的第一行在某些软件中会默认被当做问题行,在归并的时辰会被忽略,这样你的功效也许就少一行。再可能你用来归并的那一列,原始数据有拼写错误或差异写法(英式美式拼写、繁体简体),归并后的功效就不会是你想要的。总之,在归并前必然要想一个要领来检测归并乐成与否,譬喻搜查行数列数,看看数据集里那边有 NA 等等。数据说明软件输出了功效,并不代表你的归并就是正确的。

不要只看了数据集前几行,就觉得每一行的数据都长这样。举个例子,假如数据的第一列是地名(“某某区”),你运行了“查察数据前几行”这个呼吁,发明这几行第一列的长度都是 3(“向阳区”、“静安区”),就觉得每一行第一列的长度都是 3。接下来,你用到一些关于变量长度的呼吁——假如第一列有的长度不是 3,输出功效就会有错。正确要领应该是先搜查待处理赏罚的数据是否都遵循你假设的法则,不管是通过运行呼吁检讨(“第一列有哪些值的长度不便是 3”)照旧通过从知识思索(“有没有高出三个字的地名”)。

处理赏罚后

查找非常数据!收工前,必然要通过做图可能写呼吁来搜查非常数据,譬喻比中位值跨越许多的、比前一年的值低许多的。发明非常数据后起主要看原始数据,凡是是你在归并等伟大步调中出了错。但我也碰着过原始数据堕落的环境,以是纵然你的非常数据切合原始数据,也必然要再想一想——假如非常数据违反知识(譬喻生齿一年内翻倍、收入是其他地域几分之一),那要求证数据来历。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读