学习
实践
活动
专区
工具
TVP
写文章

《Python数据分析入门:从数据获取到可视化》

《Python数据分析入门:从数据获取到可视化》

沈祥壮 著

2018年3月出版点击此处参与抽奖,选取1 名同学获赠此书,3月27日自动开奖。

内容简介

本书作为数据分析的入门图书,以Python语言为基础,介绍了数据分析的整个流程。本书内容涵盖数据的获取(即网络爬虫程序的设计)、前期数据的清洗和处理、运用机器学习算法进行建模分析,以及使用可视化的方法展示数据及结果。首先,本书中不会涉及过于高级的语法,不过还是希望读者有一定的语法基础,这样可以更好地理解本书的内容。其次,本书重点在于应用Python来完成一些数据分析和数据处理的工作,即如何使用Python来完成工作而非专注于Python语言语法等原理的讲解。本书的目的是让初学者不论对数据分析流程本身还是Python语言,都能有一个十分直观的感受,为以后的深入学习打下基础。最后,读者不必须按顺序通读本书,因为各个章节层次比较分明,可以根据兴趣或者需要来自行安排。例如第5章介绍了一些实战的小项目,有趣且难度不大,大家可以在学习前面内容之余来阅读这部分内容。

作者简介

沈祥壮

自学Python两年,以数据分析为主线,系统学习的数据的采集、处理、分析和可视化。在研究统计机器学习理论的同理,使用Python语言实现了部分统计学习算法。研究方向包括数据采集、数据挖掘、统计机器学习及图像处理。

前言节摘

Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用Python便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。本书本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。希望借此为Python初学者打开数据分析领域的大门,初窥数据分析的奥秘。

本书的主要内容

第1章主要讲解了在Ubuntu和Windows系统下,Python集成开发环境的搭建。考虑到初学者容易为安装第三方库犯难,又介绍了三种简单实用的方法来安装这些常见的库。接着对几个后面要用到的高级语法进行了简单介绍,为之后的应用打下基础。

第2章集中讲解了数据采集的流程,即网络爬虫程序的设计与实现。首先本章没有拘泥于使用Python的内置库urllib库进行实现,而是直接介绍了requests和其他更加简捷强大的库来完成程序的设计。在进阶内容中,对常见的编码问题、异常处理、代理IP、验证码、机器人协议、模拟登录,以及多线程等相关问题给出了解决的方案。

第3章讲解数据的清洗问题。在具体讲解清洗数据之前,先介绍了TXT、XLSX、JSON、CSV等各种文件的导入和导出的方法,并介绍了Python与MySQL数据库交互的方式。接着介绍了NumPy和pandas库的基本使用方法,这是我们用于数据处理和科学计算的两个强大的工具。最后综合以上的学习介绍了数据的去重、缺失值的填补等经典的数据清洗方法。

第4章首先讲解探索性数据分析的应用,并且简单介绍了机器学习基本知识。然后演示如何应用sklearn库提供的决策树和最邻近算法来处理分类问题,并尝试根据算法原理手动实现最邻近算法。最后介绍如何使用pandas、matplotlib和seaborn这三个库来实现数据的可视化。

第5章是综合性学习的章节,讲解了三个小项目的完整实现过程,旨在通过操作生活中真正的数据来强化前面基础内容的学习。

本书的读者对象

本书面向想从事数据工作的Python初学者。由于本书并不对Python的基础语法做详细的讲解,所以希望读者有一定的语法基础。

测试环境及代码

我们使用的语法是基于Python 3的,具体是Python 3.6,用到的第三方库也已经全面支持此版本,所以读者不必担心相关的版本问题;测试环境为Ubuntu 16.04 LTS 64-Bit。本书中使用的全部代码及相关数据已经托管至Github, 读者可以进入https://github.com/shenxiangzhuang/PythonDataAnalysis进行下载。

本书目录

1 准备

1.1 开发环境搭建 2

1.1.1 在Ubuntu系统下搭建Python集成开发环境 2

1.1.2 在Windows系统下搭建Python集成开发环境 13

1.1.3 三种安装第三方库的方法 16

1.2 Python基础语法介绍 19

1.2.1 if__name__=='__main__' 20

1.2.2 列表解析式 22

1.2.3 装饰器 23

1.2.4 递归函数 26

1.2.5 面向对象 27

1.3 The Zen of Python 28

参考文献 30

2 数据的获取

2.1 爬虫简介 31

2.2 数据抓取实践 33

2.2.1 请求网页数据 33

2.2.2 网页解析 38

2.2.3 数据的存储 46

2.3 爬虫进阶 50

2.3.1 异常处理 50

2.3.2 robots.txt 58

2.3.3 动态UA 60

2.3.4 代理IP 61

2.3.5 编码检测 61

2.3.6 正则表达式入门 63

2.3.7 模拟登录 69

2.3.8 验证码问题 74

2.3.9 动态加载内容的获取 84

2.3.10 多线程与多进程 93

2.4 爬虫总结 101

参考文献 102

3 数据的存取与清洗

3.1 数据存取 103

3.1.1 基本文件操作 103

3.1.2 CSV文件的存取 111

3.1.3 JSON文件的存取 116

3.1.4 XLSX文件的存取 121

3.1.5 MySQL数据库文件的存取 137

3.2 NumPy 145

3.2.1 NumPy简介 145

3.2.2 NumPy基本操作 146

3.3 pandas 158

3.3.1 pandas简介 158

3.3.2 Series与DataFrame的使用 159

3.3.3 布尔值数组与函数应用 169

3.4 数据的清洗 174

3.4.1 编码问题 174

3.4.2 缺失值的检测与处理 175

3.4.3 去除异常值 181

3.4.4 去除重复值与冗余信息 183

3.4.5 注意事项 185

参考文献 187

4 数据的分析及可视化

4.1 探索性数据分析 189

4.1.1 基本流程 189

4.1.2 数据降维 197

4.2 机器学习入门 199

4.2.1 机器学习简介 200

4.2.2 决策树——机器学习算法的应用 202

4.3 手动实现KNN算法 205

4.3.1 特例——最邻近分类器 205

4.3.2 KNN算法的完整实现 213

4.4 数据可视化 215

4.4.1 高质量作图工具——matplotlib 215

4.4.2 快速作图工具——pandas与matplotlib 223

4.4.3 简捷作图工具——seaborn与matplotlib 226

4.4.4 词云图 230

参考文献 232

5 Python与生活

5.1 定制一个新闻提醒服务 234

5.1.1 新闻数据的抓取 235

5.1.2 实现邮件发送功能 237

5.1.3 定时执行及本地日志记录 239

5.2 Python与数学 241

5.2.1 估计π值 242

5.2.2 三门问题 245

5.2.3 解决LP与QP问题(选读) 247

5.3 QQ群聊天记录数据分析 251

参考文献 256

点击此处参与抽奖,选取1 名同学获赠此书,3月27日自动开奖。

博文视点

您阅读的专业智库

喜欢请分享至朋友圈

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180322B1AKAV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券