您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
数据清理(数据清理的目的)
数据,字符串,缺失数据清理(数据清理的目的)
发布时间:2020-12-06加入收藏来源:互联网点击:
很多朋友想了解关于数据清理的一些资料信息,下面是小编整理的与数据清理相关的内容分享给大家,一起来看看吧。
摘要: 有数据不知道怎么清理?看完这篇保你不慌!
我花了几个月的时间分析来自传感器、调查及日志等相关数据。无论我用多少图表,设计多么复杂的算法,结果总是会与预期不同。更糟糕的是,当你向首席执行官展示你的新发现时,他/她总会发现缺陷,你的发现与他们的理解完全不符- 毕竟,他们是比你更了解领域的专家,而你只是数据工程师或开发人员。
你为你的模型引入了大量脏数据,没有清理数据,你告诉你的公司用这些结果做事情,结果肯定是错的。数据不正确或不一致会导致错误的结论,因此,清理和理解数据对结果的质量都会有很大影响。
垃圾进垃圾出
实际上,简单算法的作用可能超过复杂的算法,因为它被赋予了足够高质量的数据。
质量数据优于花哨的算法
出于这些原因,重要的是要有一个分步指南,一个备忘单。首先,我们想要实现的目标是什么?质量数据是什么意思?质量数据的衡量标准是什么?了解你想要完成的任务,在采取任何行动之前,你的最终目标至关重要。
目录:
· 数据质量(合法,准确,完整,一致)
· 工作流程(检查,清洁,验证,报告)
· 检查(数据分析,可视化,软件包)
· 清理(无关数据,重复数据,类型转换,语法错误)
· 验证
· 总结
数据质量除了维基百科上的质量标准之外,我找不到更好的解释质量标准。所以,我将在这里总结一下。
合法
数据符合定义的业务规则或约束的程度。
· 数据类型约束:特定列中的值必须是特定的数据类型,例如,布尔值,数字,日期等。
· 范围约束:通常,数字或日期应在特定范围内。
· 强制约束:某些列不能为空。
· 唯一约束:字段或字段组合在数据集中必须是唯一的。
· Set-Membership约束:列的值来自一组离散值,例如枚举值。例如,一个人的别可能是男或女。
· 外键约束:在关系数据库中,外键列不能具有引用的主键中不存在的值。
· 正则表达式模式:必须采用特定模式的文本字段。例如,电话号码可能需要具有模式(999)999-9999。
· 跨领域验证:跨越多个领域的某些条件必须成立。例如,患者出院的日期不能早于入院日期。
准确
数据接近真实值的程度。
虽然定义所有的值允许出现无效值,但这并不意味着它们都是准确的。
一个有效的街道地址可能实际上并不存在,一个人的眼睛颜色,比如蓝色,可能是有效的,但不是真的。另一件需要注意的是精度和精度之间的差异。
完整
所有必需数据的已知程度。由于各种原因,数据可能会丢失。如果可能的话,可以通过质疑原始来源来缓解这个问题,比如重新获得这个主题的数据。
一致
数据在同一数据集内或跨多个数据集的一致程度。当数据集中的两个值相互矛盾时,就会出现不一致。
离婚后,有效年龄,例如10岁,可能与婚姻状况不符。客户被记录在具有两个不同地址的两个不同表中。哪一个是真的?
工作流程工作流程一共四个步骤,旨在生成高质量的数据,并考虑到我们所讨论的所有标准。
1.检查:检测不正确和不一致的数据。
2.清洁:修复或删除发现的异常。
3.验证:清洁后,检查结果以验证是否正确。
4.报告:记录所做更改和当前存储数据质量的报告。
实际上,你所看到的顺序过程是一个迭代的,无穷无尽的过程。当检测到新的缺陷时,可以从验证到检查。
检查
检查数据非常耗时,并且需要使用许多方法来探索用于错误检测的基础数据。下面是其中的一些:
数据分析
一个汇总统计有关数据的数据分析是真正有用的,它可以提供有关数据质量的总体思路。例如,检查特定列是否符合特定标准或模式。数据列是记录为字符串还是数字?丢失了多少个值?列中有多少个唯一值及其分布?此数据集是否与另一个数据集链接或有关系?
可视化
通过使用诸如平均值、标准偏差、范围或分位数等统计方法分析和可视化数据,可以找到意外且因此错误的值。
例如,通过可视化各国的平均收入,可能会看到有一些异常值。这些异常值值得研究,不一定是不正确的数据。
软件包
使用你的语言提供的几个软件包或库将允许你指定约束并检查数据是否违反这些约束。此外,他们不仅可以生成违反哪些规则的报告,还可以创建哪些列与哪些规则相关联的图表。
清洁
数据清理涉及基于问题和数据类型的不同技术。可以应用不同的方法,每种方法都有自己的权衡。总的来说,不正确的数据被删除,纠正或估算。
不相关的数据
不相关的数据是那些实际上不需要的数据,并且不适合我们试图解决的问题。例如,如果我们分析有关人口总体健康状况的数据,则不需要电话号码。同样,如果你只对某个特定国家/地区感兴趣,则不希望包含所有其他国家/地区。只有当你确定某个数据不重要时,你才可以放弃它。否则,你就需要探索特征变量之间的相关矩阵。
即使你注意到没有相关,你应该问一个域专家。你永远不会知道,一个似乎无关紧要的特征,从实际经验来看,可能非常重要。
重复项
重复项是数据集中重复的数据点。
例如:
· 数据来自不同来源;
· 用户可能会两次点击提交按钮,认为表单实际上没有提交;
· 提交了两次在线预订请求,纠正了第一次意外输入的错误信息。
类型转换
确保将数字存储为数字数据类型,日期应存储为日期对象,或Unix时间戳(秒数),依此类推。如果需要,可以将分类值转换为数字和从数字转换。
需要注意的是,无法转换为指定类型的值应转换为NA值(或任何值),并显示警告。这表示值不正确,必须修复。
语法错误
删除空格:应删除字符串开头或结尾的额外空格。
" hello world " = "hello world填充字符串:字符串可以用空格或其他字符填充到一定宽度。例如,某些数字代码通常用前缀零表示,以确保它们始终具有相同的位数。
313 = 000313 (6 digits)拼写错误:字符串可以通过多种不同方式输入,毫无疑问,可能会出错。
Gender
m
Male
fem.
FemalE
Femle
这个分类变量被认为有5个不同的类,而不是预期的2个:男和女。因此,我们的职责是从上述数据中识别出每个值是男还是女。我们可以怎么做呢?
第一种解决方案是手动将每个值映射到“男”或“女”。
dataframe['gender'].map({'m': 'male', fem.': 'female', ...})
第二种解决方案是使用模式匹配。例如,我们可以在字符串的开头查找别中m或M的出现。
re.sub(r"\^m\$", 'Male', 'male', flags=re.IGNORECASE)
第三种解决方案是使用模糊匹配:一种算法,用于识别预期字符串与给定字符串之间的距离。它的基本实现计算将一个字符串转换为另一个字符串所需的操作数。
上一篇:克扣工资(克扣工资的法律后果)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |