python之数据清洗

  • 定义
  • 内容
  • 步骤
  • 实例

定义

对原始数据进行整理、标注,形成一份“干净”的数据,使其适合特定场景,这个过程就是数据清洗。这是一个反复的过程,在发现噪声数据后,还需要筛选出这些数据,然后根据任务需求再确定如何处理这些数据。

内容

数据清洗就是要去掉噪声数据,修正错误,具体包括如下几个方面:

  • 重复数据:在数据集种具有相同信息的数据。
  • 错误数据:主要是指数据集种格式错误、范围错误、包含特殊字符、包含ASCII码的数据,以及二进制、表情符号、全角、半角或其他不可识别的数据。
  • 矛盾数据:是指在数据集种对客观事实的不同维度的描述存在差异,导致数据相互矛盾,eg:物品的销量大于产量等。
  • 缺失数据:主要是指数据集中有一部分信息缺失。

步骤

  1. 找出噪声数据
  2. 清洗数据:根据具体任务指定不同的清洗方法。
  3. 保存数据,可以根据需要将清洗好的数据存储为excel、csv、json、xml等数据格式。这里主要记录下XML数据。

XML的全称是eXtensible Markup Language,是对HTML语言的扩展。XML是完全面向数据本身的,可以表述树结构、图结构等,由于其高度的通用性,因此广泛应用于不同系统间的信息传输。在存储方面,XML使用的是纯文本文档形式。
如下所示:

读取上述XML文件的代码为:

# coding=utf-8import xml.etree.ElementTree as Etdef get_nodes(element):if len(element) > 0:for child in element:print(child.tag, ":", child.text)get_nodes(child)if __name__ == "__main__":tree = Et.parse("商品销量.xml")root = tree.getroot()get_nodes(root)

实例

平时,处理数据时,数据量比较大,手动处理比较耗时耗力且容易出错,可以使用python编写自动化数据清洗脚本,以尽快的找到错误的数据行并进错误类别统计。如下所示,时部分歌单信息,包括了歌曲ID、歌曲名称、歌手、发行日期、发行公司,

但有的数据信息是缺失的,我们分别统计,代码如下:

path = r"music_list.txt"
file = open(file=path)
miss_id_list = []
miss_name_list = []
miss_artist_list = []
miss_publish_date_list = []
miss_company_list = []# 处理发行公司,若是没有分割后没有长度不为2则是数据缺失
def hadndle_split(tmp_data):tmp_list = tmp_data.strip().split(":")if len([i for i in tmp_list if len(i.strip()) > 0]) == 2:return Falseelse:return Truefor line in file:datas = line.split(",")if len(datas[0].strip()) == 0:  # 将缺失id的数据存入列表miss_id_list.append(line)if len(datas[1].strip()) == 0:  # 将缺失名称的数据存入列表miss_name_list.append(line)if len(datas[2].strip()) == 0:  # 将缺失歌手的数据存入列表miss_artist_list.append(line)# 将缺失发行时间的数据存入列表if len(datas[3].strip()) == 0 or hadndle_split(datas[3].strip()):miss_publish_date_list.append(line)# 将缺失发行公司的数据存入列表if len(datas[4].strip()) == 0 or hadndle_split(datas[4].strip()):miss_company_list.append(line)print("缺失歌曲ID的数据有 {0} 行,分别是:{1}".format(len(miss_id_list), miss_id_list))
print("缺失歌曲名称的数据有 {0} 行,分别是:{1}".format(len(miss_name_list), miss_name_list))
print("缺失歌手姓名的数据有 {0} 行,分别是:{1}".format(len(miss_artist_list), miss_artist_list))
print("缺失发行时间的数据有 {0} 行,分别是:{1}".format(len(miss_publish_date_list), miss_publish_date_list))
print("缺失发行公司名称的数据有 {0} 行,分别是:{1}".format(len(miss_company_list), miss_company_list))

python之数据清洗相关推荐

  1. python使用-使用python进行数据清洗

    数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节.有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此.数据清洗的目的有两个 ...

  2. 手把手带你飞Python爬虫+数据清洗新手教程(一)

    本文共有2394字,读完大约需要10分钟. 目录 简介 思考 撸起袖子开始干 1 获取网页源代码 2 在网页源代码里找出所需信息的位置 3 数据清洗 4 完整代码 5 优化后的代码 简介 本文使用An ...

  3. python数据清洗实例_hive 的日志处理统计网站的 PV 、UV案例 与 给合 python的数据清洗数据案例...

    一:hive 清理日志处理 统计PV.UV 访问量 二: hive 数据python 的数据清洗 一: 日志处理 统计每个时段网站的访问量: 1.1 在hive 上面创建表结构: 在创建表时不能直接导 ...

  4. python实现数据清洗(重复值+缺失值+异常值处理)

    实现功能: python实现数据清洗,对重复记录.缺失值.异常值进行检测,并对其进行处理. 实现代码: # 导入需要的库 import numpy as np import pandas as pdd ...

  5. 基于Python的数据清洗常用工具

    基于Python的数据清洗常用工具 Python数据清洗实战入门之数据清洗的常用工具 一.数组运算库Numpy Numpy常用数据结构 创建一维数组 通过嵌套列表创建二维数组 使用Numpy的迭代器生 ...

  6. python dataframe 计算上下两行的差值_用Python进行数据清洗!

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...

  7. python用xlrd怎么清洗数据_用Python进行数据清洗!

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...

  8. 使用python进行数据清洗常用的库_python3常用的数据清洗方法(小结)

    首先载入各种包: import pandas as pd import numpy as np from collections import Counter from sklearn import ...

  9. 干货:用Python进行数据清洗,这7种方法你一定要掌握

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. 作者:常国珍.赵仁乾.张秋剑 本文摘编自<Python数据科学:技术详解与 ...

最新文章

  1. 【美团】招聘计算机视觉研究岗实习生
  2. VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
  3. oracle中的merge into用法解析
  4. 专访Docker大牛:说服传统应用程序使用者是Docker面临的最大难题
  5. Python使用递归对任意嵌套列表进行扁平化
  6. Ext JS的模块化开发(Package)
  7. docker RUN、CMD 和 ENTRYPOINT
  8. 用深度优先搜索解决最长路径问题
  9. Maple入门使用教程
  10. 计算机应用基础教程学什么,[电脑基础知识]计算机应用基础教程学习.ppt
  11. arduino简易电子琴
  12. php居中显示代码,css居中代码是什么
  13. java field_Java Field.get()取得对象的Field属性值
  14. 原生JS制作缤纷色彩板
  15. nand flash地址机制
  16. 面试阿里巴巴有多难,看看面经你就知道了
  17. WebSocket connection to ‘ws://XXX‘ failed: Error during WebSocket handshake报错
  18. 分布式与集群的区别 .
  19. Python 爬虫 批量下载论坛图片
  20. 悟空CRM-11.0正式开源发布!

热门文章

  1. 【java如何截取@前面的字符串】
  2. sqli——labs初学者通关详
  3. 超好用的前端开源 Markdown编辑器 赶紧收藏起来
  4. Google地图瓦片拼图算法解析
  5. android wifi动画显示,Android获取WiFi列表的正确用法
  6. PS生成gif图像前后帧混叠
  7. 上海互盾信息科技有限公司:志不强者智不达
  8. 【运维监控】四款云服务监控工具介绍:Nagios 、 ganglia、zabbix、onealert
  9. 词向量模型Word2Vec
  10. 保护大数据的基本原理