手把手教你搞定4类数据清洗操作腾讯云开发者社区

相信大家都听说过这样一句话:废料进、废品出(Garbagein,Garbageout)。如果模型基于错误的、无意义的数据建立,那么这个模型也会出错。因此,如果源数据带有缺失值(NaN),就需要在数据预处理中进行清洗。缺失值是最常见的数据问题,有很多处理缺失值的方法,一般均按照以下四个步骤进行。

1.确定缺失值范围

具体代码如下:

#检查数据缺失情况defcheck_missing_data(df):returndf.isnull().sum().sort_values(ascending=False)check_missing_data(rawdata)Income1Age1OnlineShopper0Region0dtype:int64对每个字段都计算其缺失值比例后,按照缺失比例和字段重要性,分别制定相应的解决策略,可用图3-6表示。

▲图3-6缺失值应对策略

图3-6看似明确了不同情况的应对策略,但在实际应用中对特征的重要性判断非常复杂,通常需要到模型中去判断。对数据库进行研究并对所需解决的问题进行分析,可确定哪些特征属于重要特征,哪些特征可以省去或者删掉。

比如我们很难对每个数据的ID(独特编码)进行补全,在有的情境下这些信息是必要信息,不能够缺失,而在有的情境下却根本不需要这类信息。

所以在缺失值补全的操作前,探索数据和深入了解数据库是必要的。我们必须清楚每个变量所代表的含义,以及分析的问题可能关联的数据。在一个非常复杂的数据库中,在解决某个实际问题时,通常不需要所有的变量参与运算。

2.去除不需要的字段

3.填充缺失内容

1)以同一指标的计算结果(均值、中位数、众数等)填充缺失值。代码如下:

test1=test1.fillna(test1.mean())#用均值填充缺失值test1=test1.fillna(test1.median())#用中位数填充缺失值test1=test1.fillna(test1.mode())#用众数填充缺失值2)通过找寻带有缺失值的变量与其他数据完整的变量之间的关系进行建模,使用计算结果进行填充(这一方法较为复杂,而且结果质量可能参差不齐,可在后期习得数据建模技巧后进行尝试)。

3)以其他变量的计算结果填充缺失值。举个最简单的例子:年龄字段缺失,但是有屏蔽后六位的身份证号信息,那么就可以轻松找出出生年月,算出目前年龄。

4)以业务知识或经验推测填充缺失值。

4.重新取数

继续以Income_n_onlineshopping为例介绍,如图3-7所示。

▲图3-7查看数据是否存在缺失值

统计各列的缺失值情况,结果如图3-8所示。

从图3-7可以看出,这10行数据中第4行和第6行的部分值显示为NaN,也就是数据发生缺失。有时数据本身可能并不是在缺失值位置上留空,而是用0对空缺位置进行填充,根据对数据的理解我们也可以分辨出是否需要对0值数据进行统计和转换。

由于数值缺失占比较少,我们可以通过计算填补空缺,这里我们采用平均值填充。

如果数据是由系统日志而来的,那么通常会在格式和内容方面与元数据的描述保持一致。而如果数据是由人工收集或用户填写而来的,则有很大可能会在格式和内容上存在问题。简单来说,格式和内容的问题有以下几类。

2.数据值含有“非法”字符

字段中的值通常是有范围的,有些字符不适合出现在某些字段中,比如:

解决这类问题时,需要以半自动校验半人工方式来找出可能存在的问题,并去除不合适的字符。

3.数据值与该字段应有内容不符

例如,姓名栏填了性别、身份证号中写了手机号等。这类问题的特殊性在于不能简单地以删除方式来处理,因为有可能是人工填写错误,前端没有校验,或者导入数据时部分或全部存在列没有对齐导致,需要具体识别问题类型后再有针对性地解决。

格式内容出错是非常细节的问题,但很多分析失误都是源于此问题。比如跨表关联失败,是因为多个空格导致关键字段进行交集运算时认为“刘翔”和“刘翔”不是一个人;统计值不全,是因为数字里掺个字母在之后求和时发生问题;模型输出失败或效果不好,是因为数据对错列了,把日期和年龄混了等。

因此,在进行这一步时,需要仔细检查数据格式和内容,特别是当数据源自用户手工填写且校验机制不完善时。

03逻辑错误清洗

这一步工作的目的是去掉一些使用简单逻辑推理就可以直接发现问题的数据,防止由此导致分析结果偏差。逻辑错误清洗主要包含以下几个步骤。

1.去重

由于格式不同,原本重复的数据被认为并非重复而没能成功剔除,比如由于空格导致算法认为“刘翔”和“刘翔”不是一个人,去重失败。由于重名的情况很常见,即使中间空格被去掉后两条数据的值一致,也很难直接决定将第二条数据删除,这时就需要比较其他字段的值。

2.去除不合理值

如果字段内取值超过合理范围,比如“年龄:180岁;籍贯:火星”,则这种数据要么删掉,要么按缺失值处理。当然最好的做法是在前期收集这种字段的数据时让用户在有限范围内进行选取,以避免此情况出现。可以通过异常值查找去除不合理值。

3.修正矛盾内容

有时我们拥有多个包含相同信息的维度特征,这时就可以进行交叉验证,修复矛盾内容。比如一个隐去后六位的身份证号,100000199701XXXXXX,而年龄字段数据为18,这显然是不合理的,由于身份证号可信度更高,所以我们应该对年龄字段进行修复。

更好的做法是通过脱敏的身份证号提取出生年月,直接建立新的出生日期字段并用此年龄字段替换用户手动填写的年龄字段。

在真实世界中获取的数据常常会包含错误信息,有的是人为导致,有的是非人为导致,我们可以通过交叉验证及时发现并修复矛盾内容,为后期建模提供更高质量的数据信息。

2)检查数据协方差:

rawdata.cov()#协方差矩阵结果如图3-10所示。

▲图3-10协方差矩阵

关于作者:刘鹏,教授,清华大学博士,云计算、大数据和人工智能领域的知名专家,南京云创大数据科技股份有限公司总裁、中国大数据应用联盟人工智能专家委员会主任。中国电子学会云计算专家委员会云存储组组长、工业和信息化部云计算研究中心专家。

高中强,人工智能与大数据领域技术专家,有非常深厚的积累,擅长机器学习和自然语言处理,尤其是深度学习,熟悉Tensorflow、PyTorch等深度学习开发框架。曾获“2019年全国大学生数学建模优秀命题人奖”。参与钟南山院士指导新型冠状病毒人工智能预测系统研发项目,与钟南山院士团队共同发表学术论文。

THE END
1.数据清洗的重要性与技巧:提升大数据分析的准确性和效率提升模型性能:在机器学习和数据分析领域,模型的性能在很大程度上依赖于输入数据的质量。数据清洗包括特征选择和特征工程,这些步骤可以帮助模型更好地识别数据中的模式,从而提高模型的预测能力。 节省时间和资源:在数据分析的早期阶段进行数据清洗可以避免在后续阶段进行昂贵的修正。自动化数据清洗流程可以进一步节省时间和资https://blog.csdn.net/Shaidou_Data/article/details/144110971
2.国外客商数据清洗示例不完整的数据会污染数据库,降低其业务质量。 数据清洗,通常也称为数据清理,实际上不是对数据库的单个活动,而是涉及多种技术使用的整个过程。他们的目标是:拥有一个干净、可靠、一致和完整的数据库。干净的数据无非就是高质量的数据,我们可以信任的数据,并可以根据这些数据做出正确的决策。在商业领域,据估计每年有25https://36kr.com/p/2707385155614849
3.数据清洗的概念及实战案例(配图)!!!51CTO博客# 数据分析的过程和别的过程没什么区别 只要明确思路 其他都不难 拿做菜举例 # 类比定义 数据分析过程 做菜过程 明确需求 明确做什么菜品 收集采集 去菜市场买菜 数据清洗 洗菜切菜配菜 数据分析 炒菜 数据报告 + 数据可视化 拍照发朋友圈吃 # 专业定义 https://blog.51cto.com/u_15127637/4278148
4.数据清洗HRTechChina.com如何清洗人力资源分析数据?给你6个详细的步骤指南!数据清理是人力资源分析中的关键因素。在你分析数据之前,你需要对数据进行 "清洁"。在这篇数据清理指南中,我们将解释为什么数据清理很重要,以及你如何进行数据清理。在文章的底部,我们附上了一个有用的数据清洗信息图。 在数据分析中常说的一句话是。"垃圾进,垃圾https://www.hrtechchina.com/tag/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97/
5.如何进行数据清洗和预处理?如何进行数据清洗和预处理? 收藏 在数据分析和机器学习任务中,数据清洗和预处理是非常重要的步骤。这些过程可以帮助我们从原始数据中提取有价值的信息,并减少由于数据质量问题导致的误差和偏差。 本文将介绍数据清洗和预处理的基本步骤和技术,并提供一些实践建议和例子。https://www.cda.cn/bigdata/202679.html
6.“是什么让我们‘一见钟情’?”——基于“快速约会”数据的分析及我们常说“一见钟情”,但又是什么因素导致了一见钟情呢?哥伦比亚大学的一项基于一次“快速约会”结果的实验数据给我们提供了丰富的研究背景。利用一些数据科学中基本的数据处理手段以及R中的可视化工具,我们获得了许多有趣的结论。 二、数据清洗 此数据集原本有195列数据。但是考虑到我们的目标是预测两人配对http://www.stat.tsinghua.edu.cn/student-achievement-display/%E6%98%AF%E4%BB%80%E4%B9%88%E8%AE%A9%E6%88%91%E4%BB%AC%E4%B8%80%E8%A7%81%E9%92%9F%E6%83%85%EF%BC%9F-%E5%9F%BA%E4%BA%8E%E5%BF%AB%E9%80%9F/
7.Prompt用得好,增长工作下班早1.数据清洗 你是一位资深数据分析师,具备深厚的数据分析技能与行业经验。你擅长应用各种数据分析工具和技术,对数据进行挖掘、整合、分析,现在我有一份销售数据,是jason格式的,帮我把数据处理一下,直接输出表格。 2.找数据分析思路 你是一位XX行业的市场营销分析专家,请根据这份数据集合,给出4个不同方向的分析主题https://www.niaogebiji.com/article-645093-1.html
8.玩转逻辑回归之金融评分卡模型消费金融风控联盟数据预处理主要包括数据清洗,变量分箱和 WOE 编码三个步骤。 2.3.1 数据清洗 数据清洗主要是对原始数据中脏数据,缺失值,异常值进行处理。关于对缺失值和异常值的处理,我们采用的方法非常简单粗暴,即删除缺失率超过某一阈值(阈值自行设定,可以为30%,50%,90%等)的变量,将剩余变量中的缺失值和异常值作为一种状态https://www.shangyexinzhi.com/article/5177142.html
9.如何用Excel实现多重条件匹配与分段计价日记2、生成的Excel不能直接使用,需要数据清洗。大概就是: a、去掉样式,去掉空白行列。 b、替换无法识别的字符,数据转为纯数字。 c、从文本中识别数据,比如要将9行和11行的包裹类型、长、宽、高提取出来,转化为我们需要的标准化数据表格式,这种格式能够被函数识别并匹配包裹类型和报价。 https://m.douban.com/note/815266757
10.机器学习数据清洗之识别异常点数据是现代社会中的一种宝贵资源,但在利用数据之前,我们需要进行数据清洗以确保数据的质量和准确性。 异常值是数据中常见的问题之一,它们可能会对分析和建模产生负面影响,因此识别和处理异常值是数据清洗过程中的重要步骤之一。 本文将介绍异常值的概念、危害以及与缺失值的比较,并探讨了多种识别异常值的方法,包括基于https://www.jianshu.com/p/6676be6cdae4