回炉整理《数据分析实战45讲》之基础篇 -- 11.数据清洗(二)

2023-11-04 10:20

本文主要是介绍回炉整理《数据分析实战45讲》之基础篇 -- 11.数据清洗(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇补了 “完全合一” 中的“完整性”这个部分掌柜觉得需要了解的知识点,接下来继续看全面性。还是回到服装店会员数据表那里,掌柜觉得这里的“全面性”指的是数据要规范:即大小写要统一、有单位的要统一单位、数据长度也要一致(小数点后面是几位都要统一)、数据名称保持一致等。

  • 那么再看这里的表格可以发现出现了单位不统一以及之前对均值填充的时候小数点位数变多的情况,只需要统一单位和小数点位数即可。这里把年龄的小数点位数都统一为之前的一位、单位都统一为千克(kgs):
    在这里插入图片描述
    在这里插入图片描述
  • 上面的没有补充的,接着来到 “合法性”,简单来讲就是数据要合乎常理,不会出现异常的情况,比如年龄是负数?性别未知?数据类型出现非ASCII字符等。
    (小小了解一下:所谓的ASCII,通俗来讲就是用一套统一规定的用来表示现代英语字符 同计算机中二进制数之间关系的编码规则。而这套规则又是当时美国的组织提出来的,所以又叫做 美国信息互换标准码(American Standard Code for Information Interchange)。(这里就不再多拓展了,因为这也是一个一挖就很深的点😂,有兴趣的朋友可以私下多面向谷歌了解

再回到这里,这个原始会员信息表出现了非ASCII字符(以语感来说是法语),所以这里进行删除或者替换操作:
在这里插入图片描述
在这里插入图片描述
这里用的是正则匹配ASCII字符,然后再进行删除,可以发现第0行和第7行的非ASCII字符被删除了。

如果不想删除非ASCII字符改变原样本,就想直接替换呢

补充第三点👉:pandas中如何替换非ASCII字符? 可以使用下面这个方法:
在这里插入图片描述
先创建替换的对应字典,然后使用pandas的字符串替换方法即可!

  • 补充第四点👉:如何处理异常值?* 有三种解决办法:
    1. 删除异常值
    2. 把它当作缺失值,用缺失值的方法来处理
    3. 不处理

PS:同样,异常值的处理还是要考虑实际情况,有时候不处理可以发现数据集的其他隐藏信息,比如医学检测的时候。

  • 最后来看唯一性,即数据要唯一,不存在重复、一对多的情况。所以这里存在两个问题:
  1. 一个是Name列包含两个参数First Name 和Last Name,一般不这样操作。所以需要进行一列变多列的拆分:
    在这里插入图片描述
    但是发现没,拆分的新数据列跑到最后去了,所以需要再处理一下:
    在这里插入图片描述

  2. 最后处理重复数据,用duplicated()查询重复数据,再用drop_duplicates()方法删除重复数据:
    PPS: 关于数据去重掌柜这里就不补充了,因为之前的博文写过一次,还对比了三种工具去重的方法,可以移步👉数据去重的各种方法汇总)
    在这里插入图片描述
    在这里插入图片描述
    最后再把处理干净的表存储到Excel中:
    在这里插入图片描述
    总算把第十一章要补的知识点搞定了,才发现一章就可以整理好多出来😂,最后脑图和代码掌柜都一并打包到GitHub去了,请自取👇:
    GitHub

然后十一章还留了一个练习题
在这里插入图片描述
想要练习和参考答案的可以一并去GitHub上面查看,喜欢可以关注,谢谢!😄

参考资料:
Pandas替换非ASCII字符

这篇关于回炉整理《数据分析实战45讲》之基础篇 -- 11.数据清洗(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345110

相关文章

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值