数据清洗

Python数据清洗基本流程

无人久伴 提交于 2019-12-22 05:39:42
# -*- coding: utf-8 -*- """ Created on Wed Jul 4 18:40:55 2018 @author: zhen """ import pandas as pd import numpy as np # 创建空的df,保存测试数据 test_df = pd.DataFrame({'K1':['C1','C1','C2','C3','C4','C2','C1'],'K2':['A','A','B','C','D',np.NaN,np.NaN]}) # 按K1列进行分组,组内进行unique操作(去除重复元素,返回元组或列表) test_df_unique = pd.DataFrame(test_df. groupby (['K1'])['K2']. agg('unique') ) # 自定义函数判断元组中是否含有nan def has_nan(list):   flag = False   for x in list:     if x is np.NaN:       flag = True       break   return flag # 自定义函数判断元组中是否不含有nan def no_nan(list):   flag = True   for x in list:     if x is np.NaN:       flag

数据清洗:缺失值和异常值的处理方法 -- 回归方程充填缺失值的操作(附python代码)

倖福魔咒の 提交于 2019-12-18 20:30:40
回归方程填补缺失值的操作方法(附python代码) 1. 背景描述: 清洗过程中经常会遇到异常值和缺失值等问题,有时候,会把异常值看作缺失值来处理。一般的缺失值处理方法包括:删除、统计值充填(均值、中位数等)、回归方程预测充填等。 使用直接删除这种方法简单易行,但缺点是,在记录数据较少的情况下,会造成样本量的进一步减少,可能会改变响应变量的原有分布,造成分析结果不准确。因此,将异常值视为缺失值来处理的益处在于可以利用现有变量的信息进行建模挖掘,对异常值(缺失值)进行填补。(本文旨在探索如何使用回归方程进行预测估算,对异常值、缺失值进行充填的操作方法) 2. 应用场景: 回归方程充填法,是选择若干能预测缺失值的自变量,通过建立回归方程估算缺失值。该方法能尽可能地利用原数据集中的信息,但也存在一些不足之处:1. 虽然这是一个无偏估计,但会忽视随机误差,低估标准差和其他未知性质的测量值。2.使用前,必须假设存在缺失值所在的变量与其他变量是存在线性关系的,但现实它们不一定存在这样的线性关系,这可以借助统计工具来辨析,但往往更需要建模人员的实践经验和业务知识来进行分析和判断。 3. 方法步骤: a. 确定充填缺失值的变量(特征列) b. 拆分原始数据集: 根据需要充填缺失值的变量,把原始数据集拆分为2个子集(1. 不含有缺失值:dataset_train; 2. 只含有缺失值dataset

大数据预处理之数据清洗

感情迁移 提交于 2019-12-16 15:12:33
现实世界的数据常常是不完全的、有噪声的、不一致的。数据清洗过程包括遗漏数据处理,噪声数据处理,以及不一致数据处理。本节介绍数据清洗的主要处理方法。 遗漏数据处理 假设在分析一个商场销售数据时,发现有多个记录中的属性值为空,如顾客的收入属性,则对于为空的属性值,可以采用以下方法进行遗漏数据处理。 1)忽略该条记录 若一条记录中有属性值被遗漏了,则将此条记录排除,尤其是没有类别属性值而又要进行分类数据挖掘时。 当然,这种方法并不很有效,尤其是在每个属性的遗漏值的记录比例相差较大时。 2)手工填补遗漏值 一般这种方法比较耗时,而且对于存在许多遗漏情况的大规模数据集而言,显然可行性较差。 3)利用默认值填补遗漏值 对一个属性的所有遗漏的值均利用一个事先确定好的值来填补,如都用“OK”来填补。但当一个属性的遗漏值较多时,若采用这种方法,就可能误导挖掘进程。 因此这种方法虽然简单,但并不推荐使用,或使用时需要仔细分析填补后的情况,以尽量避免对最终挖掘结果产生较大误差。 4)利用均值填补遗漏值 计算一个属性值的平均值,并用此值填补该属性所有遗漏的值。例如,若顾客的平均收入为 10000 元,则用此值填补“顾客收入”属性中所有被遗漏的值。 5)利用同类别均值填补遗漏值 这种方法尤其适合在进行分类挖掘时使用。 例如,若要对商场顾客按信用风险进行分类挖掘时,就可以用在同一信用风险类别(如良好)下的

OCR数据闭环任务

喜夏-厌秋 提交于 2019-12-16 05:01:43
OCR数据闭环任务 目录介绍 文件夹 备注 classify 基于pytorch的分类网络,用于对新能源车牌,非新能源车牌进行初步分类 crnn 基于pyrorch的crnn文字识别网络,用于训练文字识别模型 doc 数据闭环总结文档和清洗执行时的文件挂载对应关系 scripts 数据闭环,脚本清洗文件,其中business_license,green_plate,invoice_classify有单独的清洗脚本,其他如火车票,定额票,增值税发票,预分类由于暂无标签文件,清洗脚本使用通用的 test 基于keras的crnn文字识别推断网络,用于新能源车牌识别。 train 基于keras的crnn文字识别训练网络,用于新能源车牌识别。 utils 用于新能源车牌闭环数据整理的标签映射,字符检查等 VOC2007_xml 目标检测xml样例文件 脚本清洗 scripts : business_license green_plate invoice_classify run.sh wash.py write_xml.py 脚本清洗流程图 Created with Raphaël 2.2.0 开始清洗 执行清洗处理 清洗成功? 结束任务 补清洗 yes no 来源: CSDN 作者: Jincenter 链接: https://blog.csdn.net/confuciust

python项目

故事扮演 提交于 2019-12-15 19:34:30
泉州信息工程学院 软件学院 课程设计报告书 课 程 名 : Py tho n 程序设计与高级应用 课程设计项目名称: 春晚节目单分析 团队成员: 无 一、项目简介 1.1 项目博客地址 https://www.cnblogs.com/jianghui1/p/12045494.html 1.2 项目完成的功能与特色 功能:读取本地的春晚节目单 .xlsx 数据,并对数据进行清洗,把相同类型节目分为一类进行数据分析并以图的形式表现出来。删去无用的空值,统计出现次数前 5 名的演员。 特色:把杂乱无章的数据清洗后,再构建不同的数学模型对数据进行分析。 1.3 项目采用的技术栈 pandas 数据分析, NumPy 科学计算库, seaborn 和 Matplotlib 数据可视化, EasyGui 图形用户界面 。 1.4 项目借鉴源代码的地址 无 1.5 团队成员任务分配表 无 二、项目的需求分析 统计每年各类型节目的数量。分析每年各种类型节目数量的变化,并 用折线图展现出变化。分析演员出现次数前 5 名的明星, 并使用柱状图展示出其各自出现的次数。 三、项目功能架构图、主要功能流程图 项目功能架构图: 主要功能流程图: 四、系统模块说明 4.1 系统模块列表 1) 统计每年各类型节目的数量 2) 每年各种类型节目数量变化 3) 演员出现次数前 5 名的明星 4.2 各模块详细描述

特征数据清洗 编码 标准化

▼魔方 西西 提交于 2019-12-13 16:49:15
特征工程是机器学习的第一步,涉及清理现有数据集、提高信噪比和降低维数的所有技术。大多数算法对输入数据有很强的假设,当使用原始数据集时,它们的性能可能会受到负面影响。 另外有些特征之间高度相关,在其中一个特征提供了足够的信息之后,与之相关的其他特征往往无法提供额外的信息。这时我们就需要了解如何减少特征数量或者仅选择最佳特征。 一、scikit-learn数据集 scikit-learn提供了一些用于测试的内置数据集,这些数据集包含在sklearn.datasets中,每个数据集都包含了输入集(特征集)X和标签(目标值)y。比如波士顿房价的数据集(用于回归问题): from sklearn.datasets import load_boston boston = load_boston() X = boston.data y = boston.target print(‘特征集的shape:’, X.shape) print(‘目标集的shape:’, y.shape) 特征集的shape: (506, 13) 目标集的shape: (506,) 可以看到,这个数据集包含了506个样本、13个特征,以及1个目标值。 假如我们不想使用scikit-learn提供的数据集,那么我们还可以使用scikit-learn提供的工具来手动创建特定的数据集。相关的方法有: make

数据清洗

一曲冷凌霜 提交于 2019-12-11 19:46:40
数据清洗的概念 数据清洗的流程 字段选择 数据质量报告 数据清洗主要工作 数据清洗的概念 数据清洗主要是针对数据中的 错误值、异常值、缺失值 进行处理的过程,以及删除那些取值很多的类别型字段,或者取值一致性程度极高的字段。 数据清洗流程 1.再次确认数据是否拷贝 2.再次确认原始数据中是否具有唯一ID 3.清洗数据中错误值(填写错误、逻辑错误) 4.清洗数据中的异常值 5.清洗数据中的缺失值 字段选择 通常在收集的原始数据中,**将姓名或其他字符串的字段不选入最终分析的数据库中,**如问卷调查中的主观开放题。 在实际项目中,如果客户有历史数据, 应提取越多字段的数据越好。 另外,需处理数据整合的问题,如数据单位不一致问题(美元*人民币)、数据重复问题(A和B数据库中都存在一部分重复用户的数据,合并时需剔除)。 字段数据重复:单个字段数据重复、多个字段之间的数据重复 数据清洗主要工作 噪声消除 噪声包括 错误值 (以类别字段为主)和 异常值 (针对变量) 噪声会使后期分析结果产生很大偏差,必须对噪声进行有效的识别和处理 缺失值处理 人工处理 软件自动处理 错误值和异常值处理方法** 软件及人工结合的方法 错误值: 无论分类变量还是连续变量,均先检查数据的分布情况,找到错误值。对于分类变量,检查与其他值是否有相似之处,如无,直接处理空值/未知。 异常值: 判断标准:1)最小最大分布法

数据清洗【转载】

狂风中的少年 提交于 2019-12-11 13:43:59
转至http://bluewhale.cc/2016-08-21/python-data-cleaning.html 数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个,第一是通过清洗让数据可用。第二是让数据变的更适合进行后续的分析工作。换句话说就是有”脏”数据要洗,干净的数据也要洗。本篇文章将介绍几种简单的使用python进行数据清洗的方法。 开始之前还是先在python中导入需要使用的库文件,然后进行数据读取,并创建名为loandata的数据表。这里为了更好的展示清洗的步骤和结果,我们使用的是lendingclub公开数据中的一小部分。 1 2 3 import numpy as np import pandas as pd loandata = pd.DataFrame(pd.read_excel( 'loandata.xlsx' )) 数据清洗的目的有两个,第一是通过清洗让脏数据变的可用。这也是我们首先要解决的问题。无论是线下人工填写的手工表,还是线上通过工具收集到的数据,又或者是CRM系统中导出的数据。很多数据源都有一些这样或者那样的问题,例如:数据中的重复值,异常值,空值,以及多余的空格和大小写错误的问题

Python爬虫数据处理

≯℡__Kan透↙ 提交于 2019-12-10 02:34:06
一、首先理解下面几个函数 设置变量 length()函数 char_length() replace() 函数 max() 函数 1.1、设置变量 set @变量名=值 set @address='中国-山东省-聊城市-莘县'; select @address 1.2 、length()函数 char_length()函数区别 select length('a') ,char_length('a') ,length('中') ,char_length('中') 1.3、 replace() 函数 和length()函数组合 set @address='中国-山东省-聊城市-莘县'; select @address ,replace(@address,'-','') as address_1 ,length(@address) as len_add1 ,length(replace(@address,'-','')) as len_add2 ,length(@address)-length(replace(@address,'-','')) as _count etl清洗字段时候有明显分割符的如何确定新的数据表增加几个分割出的字段 计算出com_industry中最多有几个 - 符 以便确定增加几个字段 最大值+1 为可以拆分成的字段数 此表为3 因此可以拆分出4个行业字段

《干净的数据——数据清洗入门与实践》(四)

二次信任 提交于 2019-12-09 16:41:27
讲通用语言——数据转换 数据转换时可以作为公共标准的数据类型:JSON、CSV 利用工具的快速转换 针对少量或者中量数据 电子表格->CSV:“另存为”。注意,一个EXCEL文件中的多个表格要分别保存。 电子表格->JSON:方法不太使用 使用phpMyadmin从SQL语句中生成CSV、JSON或者直接使用MySQL命令行 select concat ( firstName , " " , lastName ) as name , email_id into outfile 'enronEmployees.csv' fields terminated by ',' optionally enclosed by '"' #设置字段分割符,可以是,或者" lines terminated by '\n' #设置行分隔符 from employeelist ; 使用Python实现数据转换 数据量过大时 CSV->JSON #csv->json import json import csv #读取CSV文件 with open ( 'F:/data/clean_data/data04.csv' ) as file : file_csv = csv . DictReader ( file ) output = '[' #处理每一个目录 for row in file_csv :