Python数据清洗:Python和Pandas数据清洗的实用教程

news2024/10/6 22:25:25

在这里插入图片描述

前言: 技术书籍是学习技术知识的重要资源之一。读技术书可以帮助我们学习新技能和知识,技术书籍提供了可靠的、全面的信息,帮助我们快速学习新技能和知识。同时技术书籍有助于保持你的竞争力,因为它们提供了最新的技术知识和实践。这在当今快速发展的技术领域尤为重要,不断学习新知识和技能才能保持竞争力。总之,读技术书对于学习技术知识、提高职业素养和保持竞争力都非常重要。
Dream联合金主爸爸给大家送书啦!本期为大家带来的是 《Python数据清洗》,再次感谢 清华大学出版社 的大力支持;为Dream粉丝带来的丰厚福利。

Dream推荐

《Python数据清洗》详细阐述了与Python数据清洗相关的基本解决方案,是使用Python和Pandas执行数据清洗任务的实用教程,提供了大量的数据清洗操作技巧。

内容简介

《Python数据清洗》详细阐述了与Python数据清洗相关的基本解决方案,主要包括将表格数据导入Pandas中、将HTML和JSON导入Pandas中、衡量数据好坏、识别缺失值和离群值、使用可视化方法识别意外值、使用Series操作清洗和探索数据、聚合时修复混乱数据、组合DataFrame、规整和重塑数据、用户定义的函数和类等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
在这里插入图片描述

文章目录

第1章 将表格数据导入Pandas中 1

1.1 技术要求 1

1.2 导入CSV文件 2

1.2.1 准备工作 2

1.2.2 实战操作 3

1.2.3 原理解释 5

1.2.4 扩展知识 6

1.2.5 参考资料 7

1.3 导入Excel文件 7

1.3.1 准备工作 8

1.3.2 实战操作 8

1.3.3 原理解释 13

1.3.4 扩展知识 13

1.3.5 参考资料 14

1.4 从SQL数据库中导入数据 14

1.4.1 准备工作 15

1.4.2 实战操作 15

1.4.3 原理解释 19

1.4.4 扩展知识 21

1.4.5 参考资料 21

1.5 导入SPSS、Stata和SAS数据 21

1.5.1 准备工作 22

1.5.2 实战操作 22

1.5.3 原理解释 28

1.5.4 扩展知识 29

1.5.5 参考资料 30

1.6 导入R数据 30

1.6.1 准备工作 30

1.6.2 实战操作 31

1.6.3 原理解释 33

1.6.4 扩展知识 34

1.6.5 参考资料 34

1.7 保留表格数据 35

1.7.1 准备工作 36

1.7.2 实战操作 36

1.7.3 原理解释 39

1.7.4 扩展知识 39

第2章 将HTML和JSON导入Pandas中 41

2.1 技术要求 41

2.2 导入简单的JSON数据 41

2.2.1 准备工作 42

2.2.2 实战操作 42

2.2.3 原理解释 47

2.2.4 扩展知识 48

2.3 通过API导入更复杂的JSON数据 48

2.3.1 准备工作 49

2.3.2 实战操作 50

2.3.3 原理解释 52

2.3.4 扩展知识 53

2.3.5 参考资料 53

2.4 从网页中导入数据 53

2.4.1 准备工作 54

2.4.2 实战操作 55

2.4.3 原理解释 58

2.4.4 扩展知识 59

2.5 持久保存JSON数据 59

2.5.1 准备工作 60

2.5.2 实战操作 60

2.5.3 原理解释 62

2.5.4 扩展知识 63

第3章 衡量数据好坏 65

3.1 技术要求 66

3.2 初步了解数据 66

3.2.1 准备工作 66

3.2.2 实战操作 67

3.2.3 原理解释 70

3.2.4 扩展知识 71

3.2.5 参考资料 71

3.3 选择和组织列 71

3.3.1 准备工作 72

3.3.2 实战操作 72

3.3.3 原理解释 77

3.3.4 扩展知识 77

3.3.5 参考资料 78

3.4 选择行 79

3.4.1 准备工作 79

3.4.2 实战操作 79

3.4.3 原理解释 86

3.4.4 扩展知识 87

3.4.5 参考资料 87

3.5 生成分类变量的频率 87

3.5.1 准备工作 88

3.5.2 实战操作 88

3.5.3 原理解释 91

3.5.4 扩展知识 92

3.6 生成连续变量的摘要统计信息 92

3.6.1 准备工作 92

3.6.2 实战操作 93

3.6.3 原理解释 95

3.6.4 参考资料 96

第4章 识别缺失值和离群值 97

4.1 技术要求 97

4.2 寻找缺失值 97

4.2.1 准备工作 98

4.2.2 实战操作 98

4.2.3 原理解释 101

4.2.4 参考资料 101

4.3 用一个变量识别离群值 102

4.3.1 准备工作 102

4.3.2 实战操作 102

4.3.3 原理解释 109

4.3.4 扩展知识 109

4.3.5 参考资料 110

4.4 识别双变量关系中的离群值和意外值 110

4.4.1 准备工作 111

4.4.2 实战操作 112

4.4.3 原理解释 118

4.4.4 扩展知识 119

4.4.5 参考资料 119

4.5 检查变量关系中的逻辑不一致情况 119

4.5.1 准备工作 119

4.5.2 实战操作 120

4.5.3 原理解释 126

4.5.4 参考资料 126

4.6 使用线性回归来确定具有重大影响的数据点 126

4.6.1 准备工作 127

4.6.2 实战操作 127

4.6.3 原理解释 129

4.6.4 扩展知识 130

4.7 使用k最近邻算法找到离群值 130

4.7.1 准备工作 130

4.7.2 实战操作 131

4.7.3 原理解释 133

4.7.4 扩展知识 133

4.7.5 参考资料 134

4.8 使用隔离森林算法查找异常 134

4.8.1 准备工作 134

4.8.2 实战操作 134

4.8.3 原理解释 137

4.8.4 扩展知识 138

4.8.5 参考资料 138

第5章 使用可视化方法识别意外值 139

5.1 技术要求 139

5.2 使用直方图检查连续变量的分布 140

5.2.1 准备工作 140

5.2.2 实战操作 141

5.2.3 原理解释 146

5.2.4 扩展知识 147

5.3 使用箱形图识别连续变量的离群值 147

5.3.1 准备工作 148

5.3.2 实战操作 148

5.3.3 原理解释 153

5.3.4 扩展知识 153

5.3.5 参考资料 153

5.4 使用分组的箱形图发现特定组中的意外值 154

5.4.1 准备工作 154

5.4.2 实战操作 154

5.4.3 原理解释 159

5.4.4 扩展知识 159

5.4.5 参考资料 160

5.5 使用小提琴图检查分布形状和离群值 160

5.5.1 准备工作 160

5.5.2 实战操作 161

5.5.3 原理解释 165

5.5.4 扩展知识 166

5.5.5 参考资料 166

5.6 使用散点图查看双变量关系 166

5.6.1 准备工作 167

5.6.2 实战操作 167

5.6.3 原理解释 172

5.6.4 扩展知识 173

5.6.5 参考资料 173

5.7 使用折线图检查连续变量的趋势 173

5.7.1 准备工作 173

5.7.2 实战操作 173

5.7.3 原理解释 178

5.7.4 扩展知识 179

5.7.5 参考资料 179

5.8 根据相关性矩阵生成热图 179

5.8.1 准备工作 180

5.8.2 实战操作 180

5.8.3 原理解释 182

5.8.4 扩展知识 183

5.8.5 参考资料 183

第6章 使用Series操作清洗和探索数据 185

6.1 技术要求 186

6.2 从Pandas Series中获取值 186

6.2.1 准备工作 186

6.2.2 实战操作 187

6.2.3 原理解释 190

6.3 显示Pandas Series的摘要统计信息 190

6.3.1 准备工作 191

6.3.2 实战操作 191

6.3.3 原理解释 193

6.3.4 扩展知识 195

6.3.5 参考资料 195

6.4 更改Series值 195

6.4.1 准备工作 195

6.4.2 实战操作 195

6.4.3 原理解释 198

6.4.4 扩展知识 199

6.4.5 参考资料 199

6.5 有条件地更改Series值 199

6.5.1 准备工作 199

6.5.2 实战操作 200

6.5.3 原理解释 203

6.5.4 扩展知识 205

6.5.5 参考资料 206

6.6 评估和清洗字符串Series数据 206

6.6.1 准备工作 206

6.6.2 实战操作 206

6.6.3 原理解释 210

6.6.4 扩展知识 211

6.7 处理日期 211

6.7.1 准备工作 211

6.7.2 实战操作 212

6.7.3 原理解释 216

6.7.4 参考资料 217

6.8 识别和清洗缺失的数据 217

6.8.1 准备工作 217

6.8.2 实战操作 217

6.8.3 原理解释 221

6.8.4 扩展知识 221

6.8.5 参考资料 221

6.9 使用k最近邻算法填充缺失值 222

6.9.1 准备工作 222

6.9.2 实战操作 222

6.9.3 原理解释 223

6.9.4 扩展知识 224

6.9.5 参考资料 224

第7章 聚合时修复混乱数据 225

7.1 技术要求 226

7.2 使用itertuples遍历数据 226

7.2.1 准备工作 226

7.2.2 实战操作 227

7.2.3 原理解释 229

7.2.4 扩展知识 230

7.3 使用NumPy数组按组计算汇总 231

7.3.1 准备工作 231

7.3.2 实战操作 231

7.3.3 原理解释 233

7.3.4 扩展知识 234

7.3.5 参考资料 234

7.4 使用groupby组织数据 234

7.4.1 准备工作 234

7.4.2 实战操作 234

7.4.3 原理解释 237

7.4.4 扩展知识 237

7.5 通过groupby使用更复杂的聚合函数 237

7.5.1 准备工作 238

7.5.2 实战操作 238

7.5.3 原理解释 242

7.5.4 扩展知识 243

7.5.5 参考资料 244

7.6 结合groupby使用用户定义的函数 244

7.6.1 准备工作 244

7.6.2 实战操作 244

7.6.3 原理解释 247

7.6.4 扩展知识 247

7.6.5 参考资料 248

7.7 使用groupby更改DataFrame的分析单位 248

7.7.1 准备工作 249

7.7.2 实战操作 249

7.7.3 原理解释 250

第8章 组合DataFrame 251

8.1 技术要求 252

8.2 垂直组合DataFrame 252

8.2.1 准备工作 252

8.2.2 实战操作 253

8.2.3 原理解释 256

8.2.4 参考资料 256

8.3 进行一对一合并 256

8.3.1 准备工作 258

8.3.2 实战操作 258

8.3.3 原理解释 262

8.3.4 扩展知识 263

8.4 按多列进行一对一合并 263

8.4.1 准备工作 263

8.4.2 实战操作 263

8.4.3 原理解释 266

8.4.4 扩展知识 266

8.5 进行一对多合并 266

8.5.1 准备工作 267

8.5.2 实战操作 267

8.5.3 原理解释 271

8.5.4 扩展知识 271

8.5.5 参考资料 271

8.6 进行多对多合并 271

8.6.1 准备工作 272

8.6.2 实战操作 272

8.6.3 原理解释 276

8.6.4 扩展知识 277

8.7 开发合并例程 277

8.7.1 准备工作 277

8.7.2 实战操作 278

8.7.3 原理解释 279

8.7.4 参考资料 280

第9章 规整和重塑数据 281

9.1 技术要求 282

9.2 删除重复的行 282

9.2.1 准备工作 282

9.2.2 实战操作 283

9.2.3 原理解释 285

9.2.4 扩展知识 286

9.2.5 参考资料 286

9.3 修复多对多关系 286

9.3.1 准备工作 287

9.3.2 实战操作 287

9.3.3 原理解释 291

9.3.4 扩展知识 292

9.3.5 参考资料 292

9.4 使用stack和melt将数据由宽变长 292

9.4.1 准备工作 293

9.4.2 实战操作 293

9.4.3 原理解释 297

9.5 使用wide_to_long处理多列 297

9.5.1 准备工作 297

9.5.2 实战操作 297

9.5.3 原理解释 299

9.5.4 扩展知识 299

9.6 使用unstack和pivot将数据由长变宽 300

9.6.1 准备工作 300

9.6.2 实战操作 300

9.6.3 原理解释 302

第10章 用户定义的函数和类 303

10.1 技术要求 303

10.2 用于查看数据的函数 303

10.2.1 准备工作 304

10.2.2 实战操作 304

10.2.3 原理解释 307

10.2.4 扩展知识 308

10.3 用于显示摘要统计信息和频率的函数 308

10.3.1 准备工作 308

10.3.2 实战操作 309

10.3.3 原理解释 313

10.3.4 扩展知识 313

10.3.5 参考资料 313

10.4 识别离群值和意外值的函数 314

10.4.1 准备工作 314

10.4.2 实战操作 315

10.4.3 原理解释 319

10.4.4 扩展知识 319

10.4.5 参考资料 319

10.5 聚合或合并数据的函数 319

10.5.1 准备工作 320

10.5.2 实战操作 320

10.5.3 原理解释 325

10.5.4 扩展知识 325

10.5.5 参考资料 326

10.6 包含更新Series值逻辑的类 326

10.6.1 准备工作 326

10.6.2 实战操作 326

10.6.3 原理解释 330

10.6.4 扩展知识 331

10.6.5 参考资料 331

10.7 处理非表格数据结构的类 331

10.7.1 准备工作 332

10.7.2 实战操作 333

10.7.3 原理解释 336

10.7.4 扩展知识 336

写作感悟

本书是一本实用的数据清洗指南。从广义上说,数据清洗被定义为准备数据进行分析所需的所有任务。它通常由在数据清洗过程中完成的任务组成,即导入数据、以诊断方式查看数据、识别异常值和意外值、估算和填充缺失值、规整数据等。本书每个秘笈都会引导读者对原始数据执行特定的数据清洗任务。

目前市面上已经有许多非常好的Pandas书籍,但是本书有自己的特色,我们将重点放在实战操作和原理解释上。

由于Pandas还相对较新,因此我们所学到的有关清洗数据的经验是受使用其他工具的经验影响的。大约在2012年,作者开始使用Python和R适应其时的工作需要,在21世纪初主要使用的是C#和T-SQL,在20世纪90年代主要使用的是SAS和Stata,在20世纪80年代主要使用的是FORTRAN和Pascal。本书的大多数读者可能都有使用各种数据清洗和分析工具的经验。

无论你喜欢使用什么工具,其重要性都比不上数据准备任务和数据属性。如果让作者撰写《SAS数据清洗秘笈》或《R数据清洗秘笈》,那么讨论的主题也几乎是一样的。本书只是采用与Python/Pandas相关的方法来解决分析师数十年来面临的相同数据清洗挑战。

在讨论如何使用Python生态系统中的工具(Pandas、NumPy、Matplotlib和SciPy等)进行处理之前,作者会在每章的开头介绍如何思考特定的数据清洗任务。在每个秘笈中,作者会介绍它对于数据发现的含义。

本书尝试将工具和目的连接起来。例如,我们阐释偏度和峰度之类的概念,这对于处理离群值是非常重要的,同时我们又介绍箱形图等可视化工具,强化读者对于偏度和峰度等概念的理解。

本书读者

本书适合那些寻求使用不同的Python工具和技术处理混乱数据的读者。本书采用基于秘笈的方法来帮助读者学习如何清洗和管理数据。要充分理解本书操作,你应该掌握一定的Python编程知识。

内容介绍

本书共包含10章,具体内容如下。

第1章“将表格数据导入Pandas中”,探讨将CSV文件、Excel文件、关系数据库表、SPSS、Stata和SAS文件以及R文件等加载到Pandas DataFrame中的工具。

第2章“将HTML和JSON导入Pandas中”,讨论读取和规范化JSON数据以及从网页抓取数据的技术。

第3章“衡量数据好坏”,介绍在DataFrame中定位、选择列和行以及生成摘要统计信息的常用技术。

第4章“识别缺失值和离群值”,探讨如何采用不同的策略来识别整个DataFrame和选定组中的缺失值和离群值。

第5章“使用可视化方法识别意外值”,演示如何使用Matplotlib和Seaborn工具来可视化关键变量的分布方式,常见的可视化方法包括直方图、箱形图、散点图、折线图和小提琴图等。

第6章“使用Series操作清洗和探索数据”,讨论如何基于一个或多个Series的值,使用标量、算术运算和条件语句更新Pandas系列。

第7章“聚合时修复混乱数据”,演示按分组汇总数据的多种方法,并讨论多种聚合方法之间的区别。

第8章“组合DataFrame”,探讨用于连接和合并数据的不同策略,以及合并数据时可能遇到的常见问题。

第9章“规整和重塑数据”,详细介绍若干种用于删除重复数据、堆叠、合并和旋转的策略。

第10章“用户定义的函数和类”,探讨如何通过函数和类的形式将前9章中的许多技术转变为可重用的代码。

充分利用本书

要充分利用本书,你需要具备有关Python编程的一些基础知识。另外,也可以使用Google Colab(免费的Jupyter Notebook环境,云端运行,通过浏览器即可使用,可以编写和执行代码,保存和共享分析结果)。

编写体例

本书大多数章节以秘笈形式编写,每一节就是一个秘笈,每个秘笈中又分别包括“准备工作”“实战操作”“原理解释”“扩展知识”“参考资料”小节(部分秘笈不包含“扩展知识”和“参考资料”),使读者既能学习Pandas实用操作,又能了解其相关知识和原理,真正理解和掌握数据清洗技巧。
本书购买链接
在这里插入图片描述

获取方式

此文章下评论:人生苦短,我用Python!即可参与抽取书籍活动! 评论区抽出三位小伙伴免费送出,感谢大家支持,我们评论区见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

ChatGPT 免费体验来了

露个相吧 1、相信很多小伙伴们面试或者工作中会遇到数组扁平化这一问题,如今正是 chatgpt 大火的时候,何不让我们试试水呢,所以让我们的 chatgpt 用js帮我们写一个数组扁平化吧 2、这就?这就?这就写出来了&#xff1f…

【JavaScript数据结构与算法】字符串类(反转字符串中的单词)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃个人状态: 在校大学生一枚,已拿多个前端 offer(…

【大数据基础】淘宝双11数据分析与预测

https://dblab.xmu.edu.cn/post/8116/ 问题 问题1 mysql登录需要密码 https://cloud.tencent.com/developer/beta/article/1142525 这个很神奇,我密码输1就进去了 为避免出问题,把解决方案放这里: https://blog.csdn.net/qq_34771403/ar…

【路径规划】全局路径规划算法——蚁群算法(含python实现)

文章目录 参考资料1. 简介2. 基本思想3. 算法精讲4. 算法步骤5. python实现 参考资料 路径规划与轨迹跟踪系列算法蚁群算法原理及其实现蚁群算法详解(含例程)图说蚁群算法(ACO)附源码蚁群算法Python实现 1. 简介 蚁群算法(Ant Colony Algo…

mybatis-plus 自动填充的时间跟真实时间相差8小时

项目中 用到了以下两个字段,分别是插入数据时间和更新数据时间,用的mybatis-plus自动填充,结果发现填充的时间跟真实时间相差很多。查了一些资料,找到了解决方案: 1. 下图是我的mysql没有进行配置之前的时区配置,这里的CST包括了4个时区,分别…

一百零六、Hive312的计算引擎由MapReduce(默认)改为Spark(亲测有效)

一、Hive引擎包括:默认MR、tez、spark 在低版本的hive中,只有两种计算引擎mr, tez 在高版本的hive中,有三种计算引擎mr, spark, tez 二、Hive on Spark和Spark on Hive的区别 Hive on Spark:Hive既存储元数据又负责SQL的解析&…

【0基础】学习solidity开发智能合约-初识solidity

本篇课程开始,我们来学习一下如何使用solidity开发智能合约,由于博主对于solidity的学习,也是自学的,所以一些不足或有纰漏之处还望指出,大家共同进步,本系列课程会分很多节课讲述,从入门到进阶…

安装navicat详细流程

1.双击已下载好的navicat安装包,点击"下一步" 2.点击我同意,在点击"下一步" 3.设置navicat安装路劲, 至少要保证磁盘有90M的空间。在这里选择默认的安装路径,也可以根据自身情况安装到其他盘。 4.默认&#x…

一个几乎全民都会的算法——二分查找

为什么说二分查找是全民都会的算法? 20年前央视2套有一档叫《幸运52》的综艺节目,其中一个环节叫《幸运超市》,每一期已故著名主持人咏哥都会给佳宾们出示几个商品,凡是佳宾猜中价格的,就能获赠这件商品。这档节目红极…

C++ 类和对象(中)构造函数 和 析构函数 ,const成员

上篇链接:C 类和对象(上)_chihiro1122的博客-CSDN博客 类的6个默认成员函数 我们在C当中,在写一些函数的时候,比如在栈的例子: 如上述例子,用C 返回这个栈是否为空,直接返回的话&am…

Selenium+Pytest自动化测试框架实战

前言 1、Selenium是一个免费的(开源)自动化测试组件,适用于跨不同浏览器和平台的Web应用程序【selenium是一个自动化工具,而不是自动化框架】。它非常类似于HP Quick Test Pro (QTP现在叫UFT),只是Selenium侧重于自动化基于Web的应用程序。使…

初、高中生到底该不该学习编程?

从小学,到初中,再到高中,知识的提升主要体现在一个方面上,就是知识越来越抽象了。很多孩子在初中成绩还可以,到了高中就跟不上了,这是最主要的一个原因。 编程主要就是要求学习它的人,有较强的…

2023武生院计科专升本指南

自我介绍一下,我叫啊超,22级专升本上岸武生院考了211的计应学长,社恐,不善言辞,出门都走下水道,吃饭因社恐,屡次不敢买单。单身可撩,哈哈哈~ 我只是提出自己的一些个人建议&#xff…

utittest和pytest中mock的使用详细介绍

Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。 python3.3 以前,mock是第三方库,需要安装之后才能使用。python3.3之后,mock作为标准库内置到 un…

防火墙(firewall)

前言 计算机的安全性历来就是人们热衷的话题之一。而随着Internet的广泛应用,人们在扩展了获取和发布能力的同时也带来信息被污染和破坏的危险。这些安全问题主要是由网络的开放性、无边界性、自由性造成的,还包括以下一些因素。 1. 计算机操作系统本身…

分布式补充技术 01.AOP技术

01.AOP技术是对于面向对象编程(OOP)的补充。是按照OCP原则进行的编写,(ocp是修改模块权限不行,扩充可以) 02.写一个例子: 创建一个新的java项目,在main主启动类中,写如下代码。 package com.co…

CTSI 基金会储备透明度报告——2023 年 1 月

由于 Cartesi 代币 (CTSI) 的下一次解锁定于 2023 年 1 月 23 日,我们很高兴接着上一份透明度报告,我们本次依旧提供关于 Cartesi 基金会的治理、运营以及 CTSI 代币如何分配的另一份官方透明度报告。 提醒一下,为了保证诚实和可信度&#xf…

软件测试工程师简历项目经验怎么写

软件测试工程师简历项目经验怎么写 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。 在面试之前,不得不聊聊简历,简历是职场的敲门砖,是拿到offer的通行证,那么…

【unity学习记录-场景绘制+物体碰撞,场景物体的层级关系】跟着Unity2D官方入门教程 Ruby‘ Adventure

文章目录 创建tilemap编辑一下资源,瓦片调色对于瓦片没有填满的情况,调整每片瓦片的像素 添加点小树或其他,调整层级给树木增加一些碰撞的效果,调整碰撞范围,角色也要添加刚体人物倒着走路的解决方法(解决角…