数据挖掘中常用的数据清洗方法有哪些?

涵盖8大场景的数据清洗代码这些数据清洗代码,一共涵盖8个场景,分别是:删除多列、更改数据类型、将分类变量转换为数字变量、检查缺失数据、删除列中的字符串、删除列中的空格、用字符串连接两列(带条件)、转换时间戳(从字符串到日期时间格式)删除多列在进行数据分析时,并非所有的列都有用,用df.drop可以方便地删除你指定的列。def drop_multiple_col(col_names_list, df):
‘’’
AIM -> Drop multiple columns based on their column names

INPUT  -> List of column names, df

OUTPUT -> updated df with dropped columns 
------
'''
df.drop(col_names_list, axis=1, inplace=True)
return df

转换数据类型当数据集变大时,需要转换数据类型来节省内存。def change_dtypes(col_int, col_float, df):
‘’’
AIM -> Changing dtypes to save memory

INPUT  -> List of column names (int, float), df

OUTPUT -> updated df with smaller memory  
------
'''
df[col_int] = df[col_int].astype('int32')
df[col_float] = df[col_float].astype('float32')

将分类变量转换为数值变量一些机器学习模型要求变量采用数值格式。这需要先将分类变量转换为数值变量。同时,你也可以保留分类变量,以便进行数据可视化。def convert_cat2num(df):
# Convert categorical variable to numerical variable
num_encode = {‘col_1’ : {‘YES’:1, ‘NO’:0},
‘col_2’ : {‘WON’:1, ‘LOSE’:0, ‘DRAW’:0}}
df.replace(num_encode, inplace=True)
检查缺失数据如果你要检查每列缺失数据的数量,使用下列代码是最快的方法。可以让你更好地了解哪些列缺失的数据更多,从而确定怎么进行下一步的数据清洗和分析操作。def check_missing_data(df):
# check for any missing data in the df (display in descending order)
return df.isnull().sum().sort_values(ascending=False)
删除列中的字符串有时候,会有新的字符或者其他奇怪的符号出现在字符串列中,这可以使用df[‘col_1’].replace很简单地把它们处理掉。def remove_col_str(df):
# remove a portion of string in a dataframe column - col_1
df[‘col_1’].replace(’\n’, ‘’, regex=True, inplace=True)

# remove all the characters after &# (including &#) for column - col_1
df['col_1'].replace(' &#.*', '', regex=True, inplace=True)

删除列中的空格数据混乱的时候,什么情况都有可能发生。字符串开头经常会有一些空格。在删除列中字符串开头的空格时,下面的代码非常有用。def remove_col_white_space(df):
# remove white space at the beginning of string
df[col] = df[col].str.lstrip()
用字符串连接两列(带条件)当你想要有条件地用字符串将两列连接在一起时,这段代码很有帮助。比如,你可以在第一列结尾处设定某些字母,然后用它们与第二列连接在一起。根据需要,结尾处的字母也可以在连接完成后删除。def concat_col_str_condition(df):
# concat 2 columns with strings if the last 3 letters of the first column are ‘pil’
mask = df[‘col_1’].str.endswith(‘pil’, na=False)
col_new = df[mask][‘col_1’] + df[mask][‘col_2’]
col_new.replace(‘pil’, ’ ‘, regex=True, inplace=True) # replace the ‘pil’ with emtpy space
转换时间戳(从字符串到日期时间格式)在处理时间序列数据时,我们很可能会遇到字符串格式的时间戳列。这意味着要将字符串格式转换为日期时间格式(或者其他根据我们的需求指定的格式) ,以便对数据进行有意义的分析。def convert_str_datetime(df):
‘’’
AIM -> Convert datetime(String) to datetime(format we want)

INPUT  -> df

OUTPUT -> updated df with new datetime format 
------
'''
df.insert(loc=2, column='timestamp', value=pd.to_datetime(df.transdate, format='%Y-%m-%d %H:%M:%S.%f')) 

最后,附上原文传送门~作者:宋天龙

数据清洗的主要包括:纠正错误、删除重复项、统一规格、修正逻辑、转换构造、数据压缩、补足残缺/空值、丢弃数据/变量。1. 纠正错误错误数据是数据源环境中经常出现的一类问题。数据错误的形式包括:q 数据值错误:数据直接是错误的,例如超过固定域集、超过极值、拼写错误、属性错误、源错误等。q 数据类型错误:数据的存储类型不符合实际情况,如日期类型的以数值型存储,时间戳存为字符串等。q 数据编码错误:数据存储的编码错误,例如将UTF-8写成UTF-80。q 数据格式错误:数据的存储格式问题,如半角全角字符、中英文字符等。q 数据异常错误:如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期越界、数据前后有不可见字符等。q 依赖冲突:某些数据字段间存储依赖关系,例如城市与邮政编码应该满足对应关系,但可能存在二者不匹配的问题。q 多值错误:大多数情况下,每个字段存储的是单个值,但也存在一个字段存储多个值的情况,其中有些可能是不符合实际业务规则的。这类错误产生的原因是业务系统不够健全,尤其是在数据产生之初的校验和入库规则不规范,导致在接收输入后没有进行判断或无法检测而直接写入后台数据库造成的。2. 删除重复项由于各种原因,数据中可能存在重复记录或重复字段(列),对于这些重复项目(行和列)需要做去重处理。对于重复项的判断,基本思想是“排序和合并”,先将数据库中的记录按一定规则排序,然后通过比较邻近记录是否相似来检测记录是否重复。这里面其实包含了两个操作,一是排序,二是计算相似度。常见的排序算法:q 插入排序q 冒泡排序q 选择排序q 快速排序q 堆排序q 归并排序q 基数排序q 希尔排序常见的判断相似度的算法:q 基本的字段匹配算法q 标准化欧氏距离q 汉明距离q 夹角余弦q 杰卡德距离q 马氏距离q 曼哈顿距离q 闵可夫斯基距离q 欧氏距离q 切比雪夫距离q 相关系数q 信息熵对于重复的数据项,尽量需要经过业务确认并进行整理提取出规则。在清洗转换阶段,对于重复数据项尽量不要轻易做出删除决策,尤其不能将重要的或有业务意义的数据过滤掉,校验和重复确认的工作必不可少。3. 统一规格由于数据源系统分散在各个业务线,不同业务线对于数据的要求、理解和规格不同,导致对于同一数据对象描述规格完全不同,因此在清洗过程中需要统一数据规格并将一致性的内容抽象出来。数据字段的规则大致可以从以下几个方面进行统一:q 名称,对于同一个数据对象的名称首先应该是一致的。例如对于访问深度这个字段,可能的名称包括访问深度、人均页面浏览量、每访问PV数。q 类型:同一个数据对象的数据类型必须统一,且表示方法一致。例如普通日期的类型和时间戳的类型需要区分。q 单位:对于数值型字段,单位需要统一。例如万、十万、百万等单位度量。q 格式:在同一类型下,不同的表示格式也会产生差异。例如日期中的长日期、短日期、英文、中文、年月日制式和缩写等格式均不一样。q 长度:同一字段长度必须一致。q 小数位数:小数位数对于数值型字段尤为重要,尤其当数据量累积较大时会因为位数的不同而产生巨大偏差。q 计数方法:对于数值型等的千分位、科学计数法等的计数方法的统一。q 缩写规则:对于常用字段的缩写,例如单位、姓名、日期、月份等的统一。例如将周一表示为Monday还是Mon还是M。q 值域:对于离散型和连续型的变量都应该根据业务规则进行统一的值域约束。q 约束:是否允许控制、唯一性、外键约束、主键等的统一。统一数据规格的过程中,需要重要的一点是确认不同业务线带来数据的规格一致性,这需要业务部门的参与、讨论和确认,以明确不同体系数据的统一标准。4. 修正逻辑在多数据源的环境下,很可能存在数据异常或冲突的问题。例如不同的数据源对于订单数量的数据统计冲突问题,结果出现矛盾的记录。通常,这是由于不同系统对于同一个数据对象的统计逻辑不同而造成的,逻辑的不一致会直接导致结果的差异性;除了统计逻辑和口径的差异,也有因为源数据系统基于性能的考虑,放弃了外键约束,从而导致数据不一致的结果;另外,也存在极小的数据丢失的可能性,通常由于并发量和负载过高、服务器延迟甚至宕机等原因导致的数据采集的差异。对于这类的数据矛盾,首先需要明确各个源系统的逻辑、条件、口径,然后定义一套符合各个系统采集逻辑的规则,并对异常源系统的采集逻辑进行修正。某些情况下,也可能存在业务规则的错误导致的数据采集的错误,此时需要从源头纠正错误的采集逻辑,然后再进行数据清洗和转换。5. 转换构造数据变换是数据清理过程的重要步骤,是对数据的一个的标准的处理,几乎所有的数据处理过程都会涉及该步骤。数据转换常见的内容包括:数据类型转换、数据语义转换、数据值域转换、数据粒度转换、表/数据拆分、行列转换、数据离散化、数据离散化、提炼新字段、属性构造、数据压缩等。数据类型转换当数据来自不同数据源时,不同类型的数据源数据类型不兼容可能导致系统报错。这时需要将不同数据源的数据类型进行统一转换为一种兼容的数据类型。数据语义转换传统数据仓库中基于第三范式可能存在维度表、事实表等,此时在事实表中会有很多字段需要结合维度表才能进行语义上的解析。例如,假如字段M的业务含义是浏览器类型,其取值分为是1/2/3/4/5,这5个数字如果不加转换则很难理解为业务语言,更无法在后期被解读和应用。数据粒度转换业务系统一般存储的是明细数据,有些系统甚至存储的是基于时间戳的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库中不同的粒度需求进行聚合。表/数据拆分某些字段可能存储多中数据信息,例如时间戳中包含了年、月、日、小时、分、秒等信息,有些规则中需要将其中部分或者全部时间属性进行拆分,以此来满足多粒度下的数据聚合需求。同样的,一个表内的多个字段,也可能存在表字段拆分的情况。行列转换某些情况下,表内的行列数据会需要进行转换(又称为转置),例如协同过滤的计算之前,user和term之间的关系即互为行列并且可相互转换,可用来满足基于项目和基于用户的相似度推荐计算。数据离散化将连续取值的属性离散化成若干区间,来帮助消减一个连续属性的取值个数。例如对于收入这个字段,为了便于做统计,根据业务经验可能分为几个不同的区间:0~3000、3001~5000、5001~10000、10001~30000、大于30000,或者在此基础上分别用1、2、3、4、5来表示。数据标准化不同字段间由于字段本身的业务含义不同,有些时间需要消除变量之间不同数量级造成的数值之间的悬殊差异。例如将销售额进行离散化处理,以消除不同销售额之间由于量级关系导致的无法进行多列的复合计算。数据标准化过程还可以用来解决个别数值较高的属性对聚类结果的影响。提炼新字段很多情况下,需要基于业务规则提取新的字段,这些字段也称为复合字段。这些字段通常都是基于单一字段产生,但需要进行复合运算甚至复杂算法模型才能得到新的指标。属性构造有些建模过程中,也会需要根据已有的属性集构造新的属性。例如,几乎所有的机器学习都会讲样本分为训练集、测试集、验证集三类,那么数据集的分类(或者叫分区)就属于需要新构建的属性,用户做机器学习不同阶段的样本使用。提示 在某些场景中,也存在一些特殊转换方法。例如在机器学习中,有些值是离散型的数据但存在一定意义,例如最高学历这个字段中包含博士、研究生、大学、高中这4个值,某些算法不支持直接对文本进行计算,此时需要将学历这个字段进行转换。常见的方法是将值域集中的每个值拆解为一个字段,每个字段取值为0或1(布尔型或数值型)。这时,就会出现4个新的字段,对于一条记录来看(通常是一个人),其最高学历只能满足一个,例如字段博士为1,那么其余的字段(研究生、大学、高中)则为0。因此这个过程实际上是将1个字段根据值域(4个值的集合)拆解为4个字段。6. 数据压缩数据压缩是指在保持原有数据集的完整性和准确性,不丢失有用信息的前提下,按照一定的算法和方式对数据进行重新组织的一种技术方法。对大规模的数据进行复杂的数据分析与数据计算通常需要耗费大量时间,所以在这之前需要进行数据的约减和压缩,减小数据规模,而且还可能面临交互式的数据挖掘,根据数据挖掘前后对比对数据进行信息反馈。这样在精简数据集上进行数据挖掘显然效率更高,并且挖掘出来的结果与使用原有数据集所获得结果基本相同。数据压缩的意义不止体现在数据计算过程中,还有利于减少存储空间,提高其传输、存储和处理效率,减少数据的冗余和存储的空间,这对于底层大数据平台具有非常重要的意义。数据压缩有多种方式可供选择:q 数据聚合:将数据聚合后使用,例如如果汇总全部数据,那么基于更粗粒度的数据更加便利。q 维度约减:通过相关分析手动消除多余属性,使得参与计算的维度(字段)减少;也可以使用主成分分析、因子分析等进行维度聚合,得到的同样是更少的参与计算的数据维度。q 数据块消减:利用聚类或参数模型替代原有数据,这种方式常见于多个模型综合进行机器学习和数据挖掘。q 数据压缩:数据压缩包括无损压缩和有损压缩两种类型。数据压缩常用于磁盘文件、视频、音频、图像等。7. 补足残缺/空值由于各种主客观原因,很多系统存在残缺数据,残缺数据包含行缺失、列缺失、字段缺失三种情况。行缺失指的是丢失了一整条数据记录,列缺失指的是丢失一整列数据,字段缺失指的是字段中的值为空值。其中空值也分两种情况:q 缺失值。缺失值指的是的数据原本是必须存在的,但实际上没有数据。例如年龄这个字段每个人都会有,所以如果系统强制验证是不应该为空。q 空值。空值指的是实际存在可能为空的情况,所以空值不一定是数据问题。例如身份证号这个字段,只有成人之后才有这个字符串,因此也可能存在非成人的用户,所以可能为空。对于缺失值和空值的填充处理主要包含两种方式:一是手工填入可能的值;二是利用规则填充可能的值:某些缺失值可以从本数据源或其它数据源推导出来,这就可以用数据分布的状态和特征,使用众数、中位数、平均值、最大值、最小值填充,或者使用近邻分析甚至更为复杂的概率估计代替缺失的值,从而达到填充的目的,某些情况下也可以直接以未知或unknown填充,这是一种先期不处理而等到后期业务在处理数据的时候再处理的方法。提示 对缺失数据进行填补后,填入的值可能不正确,数据可能会存在偏置,导致数据并不是十分可靠的。除了明显的可以确定的规则来填充值以外,基于已有属性来预测缺失值是一种流行的方法。假如性别字段部分记录为空,可以将性别字段作为目标变量进行建模分析,对完整样本建模后得出缺失数据性别为男、女的概率,然后进行填充。对于更多的不确定值的数据样本,如果不影响整体计算逻辑的,建议先保持原样;如果会成为计算和建模噪音的数据,则可以采取上述方法进行处理,尽量使其在建模过程的作用消减。8. 丢弃数据/变量对于数据中的异常数据,包括缺失值、空值、错误值、不完整的数据记录等,除了使用上面讲的方法进行清洗、转换、提升外,还有另外一种方法——丢弃。丢弃也是提升数据质量的一种方法。丢弃数据的类型包含两种:q 整条删除,指的是删除含有缺失值的样本。某些情况下,由于各种原因可能存在大量的有某些字段缺失的数据记录,这会导致完整的数据很少,此时需要慎重使用。因此,这只适合关键变量缺失,或者含有无效值或缺失值的样本比重很小的情况。q 变量删除。如果某一变量的无效值和缺失值很多,而且该变量对于所研究的问题不是特别重要,则可以考虑将该变量删除。这种做法减少了供分析用的变量数目,但没有改变样本量。提示 数据丢弃或删除操作要慎重执行。一方面,被丢弃的数据很可能存在业务实际意义,而这些意义作为开发人员是不清楚的;另一方面,后期可能会需要针对异常数据进行处理,并成为重要的研究课题。例如,营销领域存在流量欺诈,电商领域存在黄牛订单,银行保险领域存在高风险业务,这些课题对应的底层数据可能都是异常数据。

作者:网易数帆
链接:https://www.zhihu.com/question/22077960/answer/473720583
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

数据清洗是将重复、多余的数据筛选清除,将缺失的数据补充完整,将错误的数据纠正或者删除,最后整理成为我们可以进一步加工、使用的数据。所谓的数据清洗,也就是ETL处理,包含抽取Extract、转换Transform、加载load这三大法宝。在大数据挖掘过程中,面对的至少是G级别的数据量,包括用户基本数据、行为数据、交易数据、资金流数据以及第三方的数据等等。选择正确的方式来清洗特征数据极为重要,除了让你能够事半功倍,还至少能够保证在方案上是可行的。数据清洗的一般步骤:分析数据、缺失值处理、异常值处理、去重处理、噪音数据处理。在大数据生态圈,有很多来源的数据ETL工具,但是对于公司内部来说,稳定性、安全性和成本都是必须考虑的。对于数据值缺失的处理,通常使用的方法有下面几种:1、删除缺失值当样本数很多的时候,并且出现缺失值的样本在整个的样本的比例相对较小,这种情况下,我们可以使用最简单有效的方法处理缺失值的情况。那就是将出现有缺失值的样本直接丢弃。这是一种很常用的策略。2、均值填补法根据缺失值的属性相关系数最大的那个属性把数据分成几个组,然后分别计算每个组的均值,把这些均值放入到缺失的数值里面就可以了。3、热卡填补法对于一个包含缺失值的变量,热卡填充法的做法是:在数据库中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。最常见的是使用相关系数矩阵来确定哪个变量(如变量Y)与缺失值所在变量(如变量X)最相关。然后把所有变量按Y的取值大小进行排序。那么变量X的缺失值就可以用排在缺失值前的那个个案的数据来代替了。还有类似于最近距离决定填补法、回归填补法、多重填补方法、K-最近邻法、有序最近邻法、基于贝叶斯的方法等。异常值通常被称为“离群点”,对于异常值的处理,通常使用的方法有下面几种:1、简单的统计分析拿到数据后可以对数据进行一个简单的描述性统计分析,譬如最大最小值可以用来判断这个变量的取值是否超过了合理的范围,如客户的年龄为-20岁或200岁,显然是不合常理的,为异常值。2、3∂原则如果数据服从正态分布,在3∂原则下,异常值为一组测定值中与平均值的偏差超过3倍标准差的值。如果数据服从正态分布,距离平均值3∂之外的值出现的概率为P(|x-u| > 3∂) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 3、箱型图分析箱型图提供了识别异常值的一个标准:如果一个值小于QL01.5IQR或大于OU-1.5IQR的值,则被称为异常值。QL为下四分位数,表示全部观察值中有四分之一的数据取值比它小;QU为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR为四分位数间距,是上四分位数QU与下四分位数QL的差值,包含了全部观察值的一半。箱型图判断异常值的方法以四分位数和四分位距为基础,四分位数具有鲁棒性:25%的数据可以变得任意远并且不会干扰四分位数,所以异常值不能对这个标准施加影响。因此箱型图识别异常值比较客观,在识别异常值时有一定的优越性。 4、基于模型检测首先建立一个数据模型,异常是那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常是相对远离预测值的对象优缺点:1.有坚实的统计学理论基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效;2.对于多元数据,可用的选择少一些,并且对于高维数据,这些检测可能性很差。 5、基于距离通常可以在对象之间定义邻近性度量,异常对象是那些远离其他对象的对象优缺点:1.简单;2.缺点:基于邻近度的方法需要O(m2)时间,大数据集不适用;3.该方法对参数的选择也是敏感的;4.不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化。 6、基于密度当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。适合非均匀分布的数据。优缺点:1.给出了对象是离群点的定量度量,并且即使数据具有不同的区域也能够很好的处理;2.与基于距离的方法一样,这些方法必然具有O(m2)的时间复杂度。对于低维数据使用特定的数据结构可以达到O(mlogm);3.参数选择困难。虽然算法通过观察不同的k值,取得最大离群点得分来处理该问题,但是,仍然需要选择这些值的上下界。 7、基于聚类:基于聚类的离群点:一个对象是基于聚类的离群点,如果该对象不强属于任何簇。离群点对初始聚类的影响:如果通过聚类检测离群点,则由于离群点影响聚类,存在一个问题:结构是否有效。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类(这个不能保证产生最优结果)。优缺点:1.基于线性和接近线性复杂度(k均值)的聚类技术来发现离群点可能是高度有效的;2.簇的定义通常是离群点的补,因此可能同时发现簇和离群点;3.产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据中离群点的存在性;4.聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大。噪音,是被测量变量的随机误差或方差。对于噪音的处理,通常有下面的两种方法:1、分箱法分箱方法通过考察数据的“近邻”(即,周围的值)来光滑有序数据值。这些有序的值被分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此它进行局部光滑。用箱均值光滑:箱中每一个值被箱中的平均值替换。用箱中位数平滑:箱中的每一个值被箱中的中位数替换。用箱边界平滑:箱中的最大和最小值同样被视为边界。箱中的每一个值被最近的边界值替换。一般而言,宽度越大,光滑效果越明显。箱也可以是等宽的,其中每个箱值的区间范围是个常量。分箱也可以作为一种离散化技术使用.2、回归法可以用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个属性,并且数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,能够帮助消除噪声。利益相关:网易猛犸大数据平台作为一站式的应用开发和数据管理平台,通过大数据开发套件,将数据开发、任务运维、自助分析、数据管理、项目管理等工作通过工作流的方式有效的串联起来,提供敏捷易用的用户操作界面,降低了大数据分析的使用门槛,显著的提高了数据开发工程师和数据分析师的工作效率。猛犸大数据平台在电商、音乐、云课堂学习、企业工业制造等领域已广泛应用,基于持续的需求驱动,通过多行业的业务验证,同时丰富全面的组件,提供完善的平台能力,满足不同类型的业务需求。在对数据的分析处理过程中,数据的安全重要性不言而喻。猛犸平台底层使用Kerberos认证,实现了数据的安全性和隔离性。除了认证系统,利用Ranger实现了细粒度的权限控制,保证了各个租户只能查看授权访问的表、库和字段。不仅如此,平台还提供审计功能,通过对用户平台行为进行记录、分析和汇报,用来帮助对事故追根溯源,提高了平台的安全性。

作者:DataHunter
链接:https://www.zhihu.com/question/22077960/answer/626535610
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在数据分析和可视化的过程中,我们会花费多达60%甚至以上的时间在数据清洗上。如何把数据改变成我们喜欢的样子,给那些丑数据做美颜,答主将给大家介绍7步套路。在做数据清洗之前,请先将原始数据留存备份!1、整体瘦身当我们拿到一个原始数据表的话,在明确分析目的的基础上,需要将不必要的列隐藏掉,来对整体数据做瘦身。比如,数据中同时有公司全名和公司简称两个字段信息,但是分析过程中,我们只需要一个字段即可,这是可以隐藏其中一个字段。这里注意:尽量不去删除数据,而是使用隐藏方式,保持原始数据的完整,方便后续工作。2、改名换姓当存在英文或者不符合阅读习惯的时候,可以对字段名称也就是excel表中的列名进行重命名,以帮助后续分析理解。3、拒绝重复对ID唯一列的重复值进行删除,一般可以借助excel功能中的数据-删除重复项。4、填补缺失由于人工录入或者数据爬虫等多方面的原因,会出现缺失值的情况,这就需要我们寻找漏网之“数据”,填充空缺值。如何统计有多少缺失值?先看ID唯一列有多少行数据,参考excel右下角的计数功能,对比就可以知道其他列缺失了多少数据。如何定位到所有缺失值?Ctrl+G,选择定位条件,然后选择空值缺失值的处理方法?第一种:人工补全,适合数据量少的情况;第二种:删除;第三种:用平均值代替缺失值;第四种:用模型计算值来代替缺失值。5、整齐划一数据如果没有统一的标准和命名,将会影响后续分析结果,所以要对其进行一致化处理。举个简单例子,以下是从拉勾爬取了一些招聘数据,其中薪水这个字段比较特殊,是一个范围,而不是具体数值。这里要做到整齐划一,就需要借助分列功能对齐进行操作。现在工作表的后方插入两列,分别命名“最低薪水”和“最高薪水”,然后选中“薪水”列,在excel中选择数据-分列-分隔符号-勾选其他,并在其他后面输入“-”,即可完成。6、数据排序我们对上述所说的最低薪水和最高薪水取平均值后,再进行由高到低排序,就可以大致看出哪个城市给的薪水比较靠前。7、异常处理异常值的判别:可以参考之前我们提供的箱线图文章,利用箱线图,可以迅速识别异常值。对异常值处理,需要具体情况具体分析,一般而言,异常值的处理方法常用有四种:1.删除含有异常值的记录2.将异常值视为缺失值,交给缺失值处理方法来处理3.用平均值来修正4.不处理经过上述7个步骤,我们就对原始数据做了清洗、美颜。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值