西安网站seo诊断,手机网站大全观看,宣传软文案例,众包网站开发一、什么是数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序#xff0c;包括检查数据一致性#xff0c;处理无效值和缺失值等。与问卷审核不同#xff0c;录入后的数据清理一般是由计算机而不是人工完成。 ——百度百科
二、为什么要数据清洗
现实生…一、什么是数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序包括检查数据一致性处理无效值和缺失值等。与问卷审核不同录入后的数据清理一般是由计算机而不是人工完成。 ——百度百科
二、为什么要数据清洗
现实生活中数据并非完美的, 需要进行清洗才能进行后面的数据分析数据清洗是整个数据分析项目最消耗时间的一步数据的质量最终决定了数据分析的准确性数据清洗是唯一可以提高数据质量的方法,使得数据分析的结果也变得更加可靠
三、清洗的步骤处理工具以python为例 预处理
一是将数据导入处理工具。通常来说建议使用数据库单机跑数搭建MySQL环境即可。如果数据量大千万级以上可以使用文本文件存储Python操作的方式。
二是看数据。这里包含两个部分一是看元数据包括字段解释、数据来源、代码表等等一切描述数据的信息二是抽取一部分数据使用人工查看方式对数据本身有一个直观的了解并且初步发现一些问题为之后的处理做准备。 导入包和数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdf pd.read_csv(./dataset/googleplaystore.csv,usecols (0,1,2,3,4,5,6))
print(df.head(1))#浏览表的结构 App Category Rating \
0 Photo Editor Candy Camera Grid ScrapBook ART_AND_DESIGN 4.1 Reviews Size Installs Type
0 159 19M 10,000 Freeprint(df.shape)#行列数量 (10841, 7) print(df.count())#各个列的非空数据量 App 10841 Category 10841 Rating 9367 Reviews 10841 Size 10841 Installs 10841 Type 10840 dtype: int64 print(df.describe())#数据统计分析数据的范围、大小、波动趋势 Rating count 9367.000000 mean 4.193338 std 0.537431 min 1.000000 25% 4.000000 50% 4.300000 75% 4.500000 max 19.000000 阶段一去除/补全有缺失的数据
1、确定缺失值范围对每个字段都计算其缺失值比例然后按照缺失比例和字段重要性分别制定策略确定。
2、去除不需要的字段这一步很简单直接删掉即可。
3、填充缺失内容某些缺失值可以进行填充Pandas方法通常有以下几种 填充具体数值通常是0 填充某个统计值比如均值、中位数、众数等 填充前后项的值 基于SimpleImputer类的填充 基于KNN算法的填充 阶段二去除/修改格式和内容错误的数据
1、时间、日期、数值、全半角等显示格式不一致
#时间转换
import datetimedate_str 2023-09-11
date_obj datetime.datetime.strptime(date_str, %Y-%m-%d)formatted_date_str date_obj.strftime(%m/%d/%Y)print(转换结果 formatted_date_str) 转换结果09/11/2023字符 num_str 123.4567
num_float float(num_str)formatted_num_str {:.2f}.format(num_float)print(转换结果formatted_num_str) 转换结果123.46 2、内容与该字段应有内容不符
原始数据填写错误并不能简单的以删除来处理因为成因有可能是人工填写错误也有可能是前端没有校验还有可能是导入数据时部分或全部存在列没有对齐的问题因此要详细识别问题类型。
阶段三去除/修改逻辑错误的数据
1、去重
有的分析师喜欢把去重放在第一步但我强烈建议把去重放在格式内容清洗之后原因已经说过了多个空格导致工具认为“陈丹奕”和“陈 丹奕”不是一个人去重失败。而且并不是所有的重复都能这么简单的去掉……
我曾经做过电话销售相关的数据分析发现销售们为了抢单简直无所不用其极……举例一家公司叫做“ABC管家有限公司“在销售A手里然后销售B为了抢这个客户在系统里录入一个”ABC官家有限公司“。你看不仔细看你都看不出两者的区别而且就算看出来了你能保证没有”ABC官家有限公司“这种东西的存在么……这种时候要么去抱RD大腿要求人家给你写模糊匹配算法要么肉眼看吧。
当然如果数据不是人工录入的那么简单去重即可。
2、去除不合理值
一句话就能说清楚有人填表时候瞎填年龄200岁年收入100000万估计是没看见”万“字这种的就要么删掉要么按缺失值处理。这种值如何发现提示可用但不限于箱形图Box-plot.
3、修正矛盾内容
有些字段是可以互相验证的举例身份证号是1101031980XXXXXXXX然后年龄填18岁我们虽然理解人家永远18岁的想法但得知真实年龄可以给用户提供更好的服务啊又瞎扯……。在这种时候需要根据字段的数据来源来判定哪个字段提供的信息更为可靠去除或重构不可靠的字段。
逻辑错误除了以上列举的情况还有很多未列举的情况在实际操作中要酌情处理。另外这一步骤在之后的数据分析建模过程中有可能重复因为即使问题很简单也并非所有问题都能够一次找出我们能做的是使用工具和方法尽量减少问题出现的可能性使分析过程更为高效。
阶段四去除不需要的数据
这一步说起来非常简单把不要的字段删了。
但实际操作起来有很多问题例如
把看上去不需要但实际上对业务很重要的字段删了 某个字段觉得有用但又没想好怎么用不知道是否该删 一时看走眼删错字段了。
前两种情况我给的建议是如果数据量没有大到不删字段就没办法处理的程度那么能不删的字段尽量不删。第三种情况请勤备份数据……
阶段五关联性验证
如果你的数据有多个来源那么有必要进行关联性验证。
例如你有汽车的线下购买信息也有电话客服问卷信息两者通过姓名和手机号关联那么要看一下同一个人线下登记的车辆信息和线上问卷问出来的车辆信息是不是同一辆如果不是别笑业务流程设计不好是有可能出现这种问题的那么需要调整或去除数据。
五、文本数据的基本处理
1.小写转换——将文本中的所有字母转换为小写形式。 2.去除标点符号——从文本中删除所有标点符号如句号、逗号、叹号等。
3.去除停用词——从文本中去除常见的无实际含义的词语例如英语中的a、an、the等。 4.去除频现词——从文本中删除出现频率较高的词语这些词语可能对文本分析任务的结果产生较少影响。 5.去除稀疏词——从文本中删除出现频率较低的不常见词语这些词语可能不具有足够的统计意义。 6.拼写矫正——根据给定的文本对其中可能存在的拼写错误进行自动纠正。这可以通过使用拼写纠正算法和词典来实现以找到最可能的正确拼写。 7.分词——将文本分割成具有一定意义的词语单元这有助于后续的文本处理和分析任务。分词可以根据不同的语言和任务采用不同的分词算法或工具。 8.题干提取——从一篇文章或一段文字中提取出主要的问题或主题。对于题目来说题干提取是指从题目中提取出题目的关键内容或问题以便更好地理解题目和回答问题。 9.词形还原——将单词恢复为其原始的词干或基本形式。例如对于英语中的单词running词形还原可以将其还原为run。词形还原有助于减少词形变化对文本处理和分析的干扰以及提高文本处理的准确性。