ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 数据清理:将凌乱的数据转换为整洁的数据 > 原文: [https://machinelearningmastery.com/data-cleaning-turn-messy-data-into-tidy-data/](https://machinelearningmastery.com/data-cleaning-turn-messy-data-into-tidy-data/) 数据准备很困难,因为这个过程不客观,或者至少它没有这种感觉。诸如“_之类的问题,描述问题的最佳数据形式是什么?_ “不客观。您必须从您想要解决的问题的角度思考,并通过您的管道尝试一些不同的表示。 [Hadley Wickham](http://had.co.nz) 是莱斯大学的[兼职教授](http://www.linkedin.com/pub/hadley-wickham/13/9b6/31)和首席科学家以及 [RStudio](https://www.rstudio.com/) ,他对这个问题非常感兴趣。他撰写了一些最受欢迎的R软件包,用于组织和呈现您的数据,例如reshape,plyr和ggplot2。在他的期刊文章 [Tidy Data](http://vita.had.co.nz/papers/tidy-data.pdf) 中,Wickham展示了他对数据清理的看法,并通过整洁的数据来定义他的意思。 [![tidy data](https://img.kancloud.cn/fd/bc/fdbc7295f2cac57e0663f78877c9d77e_232x300.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/05/tidy-data.jpg) Tidy Data,照片由 [Andrew King](https://www.flickr.com/photos/watt_dabney/5514730517) 拍摄 ## 数据清理 大量的数据分析时间用于[数据清理和准备数据](http://en.wikipedia.org/wiki/Data_cleansing),高达80%的时间。威克姆指出,这不是一次性的过程,它是迭代的,因为你在每次连续传递中更深入地理解问题。目标是构建数据以便于您计划执行的数据分析。 ## 整洁的数据 Wickham的想法充分利用了关系数据库的思想和计算机科学的数据库规范化,尽管他的受众是统计学家和数据分析师。他从定义术语开始,建议谈论行和列不够丰富: * 数据是给定类型的值的集合 * 每个值都属于一个变量 * 每个变量都属于一个观察 * 观察是单位的变量(如对象或事件)。 变量是列,观察是行,观察类型是表。传统上,Wickham将此与关系数据库理论中的第三范式相关联。他还将变量的类型描述为固定和测量,并建议在表中测量之前组织固定。 * **固定变量**:一个变量,它是实验设计的一部分,在实验开始之前就已知(如人口统计学) * **测量变量**:在研究中测量的变量。 整洁数据的目标是将数据(语义)的含义映射到数据结构上。 ## 工作的例子 Wickham说真实数据集违反了整洁数据的原则。他描述了5个常见问题: * 列标题是值,而不是变量名 * 多个变量存储在一列中 * 变量存储在行和列中 * 多种类型的观察单元存储在同一个表中 * 单个观察单元存储在多个表中 然后他继续提供每个问题的工作实例。他提供了每个问题的样本真实世界数据,并演示了修复它的过程,使其整洁。 这些例子非常有启发性,非常值得单独阅读这些工作示例的论文。他接着提供了一份更大的案例研究,其中包含墨西哥的死亡率数据。 [![tidy data](https://img.kancloud.cn/16/82/1682e3721c14bc2317df0b9ab293154f_211x300.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/05/tidy-data.png) Hadley Wickham提供的整洁数据 ## 整洁的数据工具 只有在数据整洁之后才对数据分析有用。整洁的数据使用专为整洁数据设计的工具轻松执行数据分析任务: * **操纵**:可变操作,如聚合,过滤,重新排序,转换和排序。 * **可视化**:使用图形和图表汇总数据以进行探索和展示。 * **建模**:这是整洁数据的驱动灵感,建模就是我们要做的。 Wickham小心地指出,整洁的数据只是数据清理过程的一部分。整洁数据的其他区域包括解析变量类型(日期和数字),处理缺失值,字符编码,拼写错误和异常值。 他评论说,这项工作是基于他自己的咨询和教学经验,而且他的经验是相当可观的,因为他的R套餐是下载最多的。 ## 资源 Wickham似乎在2011年发布了这些想法。您可以在题为 [Timey Data on Vimeo](http://vimeo.com/33727555) 和[审查幻灯片](http://stat405.had.co.nz/lectures/18-tidy-data.pdf)(PDF)的演示文稿中观看类似想法的演示。 <iframe allowfullscreen="" frameborder="0" height="281" src="https://www.youtube.com/embed/TaxJwC_MP9Q?feature=oembed" width="500"></iframe> Wickam还在2011年就#HTG0工程数据分析(使用R和ggplot2)提出了相同的想法。我也建议看这个演讲。他强调了特定领域语言在这项工作中的重要性,如ggplot2(图形语法)等。他还强调了使用编程语言进行这项工作(而不是excel)来获得透明度,可重复性和自动化等属性的重要性。使用相同的死亡率案例研究。 Wickam在他的论文中提到的一些你可能想要研究的好书包括: * [数据库管理的关系模型:第2版](http://www.amazon.com/dp/0201141922?tag=inspiredalgor-20)关于关系数据库理论和数据规范化。 * [探索性数据挖掘和数据清理](http://www.amazon.com/dp/0471268518?tag=inspiredalgor-20)关于数据清理和数据准备的最佳实践。 * [图形语法](http://www.amazon.com/dp/0387245448?tag=inspiredalgor-20)关于R和python图表库ggplot上使用的现在着名的图形语法。 * [Lattice:R的多变量数据可视化(使用R!)](http://www.amazon.com/dp/0387759689?tag=inspiredalgor-20)在Lattice R软件包上绘制数据图表。