时事通讯




清理脏数据


数据的最终目的是驱动决策。但数据并不像我们想要相信的那样可靠或准确。这将导致一个最不受欢迎的结果:糟糕的数据意味着糟糕的决策。作为一名数据专业人员,我们的任务之一就是让数据“足够好”,供他人使用。我们花时间清理数据,让其他团队可以使用这些数据。这可能看起来是一个永无止境的任务,因为它确实是。

脏数据的起源

脏数据的根本原因很简单:人工干预。如果不是人类,数据将是干净、完美和清晰的。我们改变了标准和业务需求,却忘记了最初为什么要收集一些指标。我们编写的一些代码在某些时候会失败,我们会时不时地笨拙地输入数据。

因此,我们最终会遇到以下情况:记录并两次输入到数据集中的单个事件导致的重复数据,由于应该包含值但没有包含值的字段导致的丢失数据,以及由于没有正确输入或没有维护信息而导致的无效数据。其他情况包括由于输入错误、换位、拼写或格式变化(Unicode!)而导致的错误数据,以及由于输入错误字段而导致的不适当数据。

数据清洗技术

记住,所有的数据都是脏的——您不可能使所有的数据都完美无缺。你的重点应该是让它足够好,以便传递给下一个人。第一步是检查数据并问自己,“这些数据有意义吗?”数据应该讲述一个故事或回答一个问题。确保你的数据也是如此。然后,在进行任何其他操作之前,在进行最小的更改之前,先对数据进行拷贝或备份。我怎么强调都不为过。

根据您的数据和数据集中的特定问题,下面是一些您可能会使用的数据清理技术。

识别和删除重复数据: Microsoft Excel和Microsoft Power BI等工具使这变得很容易。当然,你需要知道这些数据是重复的还是两个独立的观测结果。对于关系数据库,我们经常使用主键来强制记录的唯一性。但是这种约束并不是对每个系统日志数据都可用。

删除不合适的数据:如果数据不能帮助你回答你所问的问题,移除它。例如,如果您正在分析商店销售,您可能希望关注特定商品或商品类别的销售。

识别并修复拼写等问题。有许多方法可以操作字符串,以帮助您的数据格式化和美观。例如,您可以使用TRIM函数从列的文本中删除空格,然后对数据进行排序,并查找诸如大小写和拼写等细节。记住地域术语的使用,比如将含糖饮料称为“pop”,而不是正确的术语“soda”。

规范化的数据:设置数据标准。如果数据是一个数字,请确保它是一个数字,而不是文本。如果它是分类的,请确保条目适用于这个类别。拼写、大写等都是设置标准和某种程度上规范化数据的方法。

删除离群值但只有在有意义的时候才这样做!如果离群值是由于收集不当造成的,那么可以安全地删除它。哈蒙德定律指出:“90%的情况下,下一次测量会超出90%的置信区间。”请注意,在证明异常值和数据库异常存在之前,它们是无害的——如果您确实删除了异常值,请注意有些统计数据是有抵抗力的,而其他统计数据则不是。

固定失踪你有两个选择。您可以删除记录,也可以更新缺失的值。是的,这就是我们得到虚假零值的方式。您将需要做出一些艰难的选择,所以要确保您的文档中有您正在做的事情。一个很好的方法就是使用jupiter笔记本。对于分类数据,您可能决定使用“missing”这样的词。对于数值数据,您可能希望使用0或平均值,或者生成数据的随机分布。同样,跟踪你做的每一个改变。我避免对任何数据使用伪空,除非有必要注意收集的信息的缺失。

一个永无止境的过程

我们都落入同样的陷阱:我们没有时间在第一时间做正确的事情,但不知为何总觉得以后会有时间来修复它。说到数据,这是一个无止境的整理、消费和清理的过程。不管你怎么清理你的数据,它永远不会是干净的,但它可以足够好。也许我们上学不是为了成为一名数据管理员,但我们现在在这里。我们知道,虽然所有的数据都是脏的,但数据仍然是有用的。它只需要好好打扫一下。