数据清洗的四类操作.docx
《数据清洗的四类操作.docx》由会员分享,可在线阅读,更多相关《数据清洗的四类操作.docx(8页珍藏版)》请在第一文库网上搜索。
1、数据清洗的四类操作缺失值清洗、格式内容清洗、逻辑错误清洗和维度相关性检查、缺失值清洗相信大家都听说过这样一句话:废料进、废品出(Garbage in, Garbage out)o如果模型基于错误的、无意义的数据建立,那么这个模型也会出错。因此,如果源数据带有缺失值(NaN),就需要在数据预处理中进行清洗。缺失值是最常见的数据问题,有很多处理缺失值的方法,一般均按照以下四个步骤进行。1.1确定缺失值范围具体代码如下:#检查数据缺失情况def check_missing_data(df):return df.isnull().sum().sort_values(ascending - False)
2、check_missing_data(rawdata)Income1Age1Online Shopper 0Region0dtype: int64对每个字段都计算其缺失值比例后,按照缺失比例和字段重要性,分别制定相应的解决策略,可用图3-6表示。重要性高特征:重要性高,缺失率低应对策略:1)通过计算进行填充2)通过经验或知识进行填充特征:重要性高.缺失率高应对策略:1 )从其他渠道和数据源取数补全2)使用其他字段通i计算司金3 )去除T段,并的果中表明特征:重要性低,缺失率低应对策略:不做处理或简单填充特征:重要性低.缺失率高应对策略:去除该字段缺失率高图3-6缺失值应对策略图3-6看似明确了
3、不同情况的应对策略,但在实际应用中对特征的重要性判断非常复杂,通常需要到模型中去判断。对数据库进行研究并对所需解决的问题进行分析,可确定哪些特征属于重要特征,哪些特征可以省去或者删掉。比如我们很难对每个数据的ID (独特编码)进行补全,在有的情境下这些信息是必要信息,不能够缺失,而在有的情境下却根本不需要这类信息。比如我们有一组网购记录信息,其中包括每个用户在不同时间段的操作。当我们希望对每个用户进行分析的时候,用户名(UserID)就是不可或缺的,那么缺失用户名的数据很可能需要被清除。但如果我们不需要精确到对个人行为进行分析,那么用户名就没那么必要了。所以在缺失值补全的操作前,探索数据和深入
4、了解数据库是必要的。我们必须清楚每个变量所代表的含义,以及分析的问题可能关联的数据。在一个非常复杂的数据库中,在解决某个实际问题时,通常不需要所有的变量参与运算。L2去除不需要的字段本步骤将减少数据维度,剔除一些明显与数据分析任务不匹配的数据,让与任务相关的数据更为突出。注意,最好不要更改原始数据,只是在下一步处理前提取出用于分析的数据。同时这一步需要考虑之前缺失值的情况,保留对于有些缺失值占比不大或者通过其他信息可以进行推断的特征,去除缺失量太多的数据行或列。对于新手,强烈建议在清洗的过程中每做一步都备份一下,或者在小规模数据上试验成功后再处理全量数据,节约时间,也充分留足撤销操作的余地。L
5、3填充缺失内容具体代码如下:testl - rawdata.copy( )#将更改前的数据进行备份testl = testl.head(3)#提取前三行进行测试testl = testl.dropna( )#去除数据中有缺失值的行print(testl)testlnametoyborn0AndyNaNNaN1CindyGun1998-12-252WendyGumNaNtest:L - testl.dropna(axis-0)#去除数据中有缺失值的行nametoyborn1CindyGun1998-12-25testl testl.dropna (axis- * columns * ) 去除数据
6、中有缺失值的列name0 Andy1 Cindy2 Wendytestl = test 1.dropna(how=*all* )#去除数据完全缺失的行testl - testl.dropna(thresh-2)#保留行中至少有两个值的行testl testl. dropna (how=1 any *) #去除数据中含有演失值的行testl = testl. dropna (how= * any *, subset * toy1 ) 去除toy列中含有缺失的行testl.dropna(inplace-True)#在这个变fit名中直接保存结果在实际应用中,第2步和第3步的操作通常协同进行,在判断
7、完维度相关性与重要性后,对想要保留的维度进行填充,最后对数据行进行必要的清洗,以避免可进行填充的有效字段在清洗时被剔除。1)以同一指标的计算结果(均值、中位数、众数等)填充缺失值。代码如下:testl = testtestl.mean() )# 用均值填充缺失值testl testl.fillna(testl.median() )# 用中位数填充缺失值testl = testl.fillna(testl.mode() )# 用众数填充缺失值2)通过找寻带有缺失值的变量与其他数据完整的变量之间的关系进行建模,使用计算结果进行填充(这一方法较为复杂,而且结果质量可能参差不齐,可在后期习得数据建模技
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 清洗 操作