本书是一本通过实战教初学者学习采集数据、清洗和组织数据进行分析及可视化的 Python 读物。书中案例均经过实战检验,笔者在实践过程中深感采集数据、清洗和组织数据的重要性,作为一名数据行业的“码农”,数据就是沃土,没有数据,我们将无田可耕。
本书共分 11 章, 6 个核心主题:其一是 Python 基础入门,包括环境配置、基本操作、数据类型、语句和函数;其二是 Python 爬虫的构建,包括网页结构解析、爬虫流程设计、代码优化、效率优化、容错处理、 反防爬虫、 表单交互和模拟页面点击; 其三是 Python 数据库应用, 包括 MongoDB、 MySQL 在 Python中的连接与应用;其四是数据清洗和组织,包括 NumPy 数组知识、 pandas 数据的读写、分组变形、缺失值异常值处理、时序数据处理和正则表达式的使用;其五是综合应用案例,帮助读者贯穿爬虫、数据清洗与组织的过程;*后是数据可视化,包括 Matplotlib 和 Pyecharts 两个库的使用,涉及饼图、柱形图、线图、词云图、地图等图形,帮助读者进入可视化的殿堂。
本书以实战为主,适合 Python 初学者及高等院校的相关专业学生,也适合 Python 培训机构作为实验教材使用。
第 1 章 Python 基础 /1
1.1 安装 Python 环境 /1
1.1.1 Python 3.6.2 安装与配置 /1
1.1.2 使用 IDE 工具——PyCharm /4
1.1.3 使用 IDE 工具——Anaconda / 4
1.2 Python 操作入门/6
1.2.1 编写第一个 Python 代码/6
1.2.2 Python 基本操作/9
1.2.3 变量/10
1.3 Python 数据类型/10
1.3.1 数字/10
1.3.2 字符串/11
1.3.3 列表/13
1.3.4 元组/14
1.3.5 集合/15
1.3.6 字典/15
1.4 Python 语句与函数/16
1.4.1 条件语句/16
1.4.2 循环语句/16
1.4.3 函数/17
第 2 章 写一个简单的爬虫/18
2.1 关于爬虫的合法性/18
2.2 了解网页/20
2.2.1 认识网页结构/ 21
2.2.2 写一个简单的 HTML/21
2.3 使用 requests 库请求网站/23
2.3.1 安装requests 库/23
2.3.2 爬虫的基本原理/25
2.3.3 使用 GET 方式抓取数据/26
2.3.4 使用 POST 方式抓取数据/27
2.4 使用 Beautiful Soup 解析网页/30
2.5 清洗和组织数据/34
2.6 爬虫攻防战/35
第 3 章用 API 爬取天气预报数据/38
3.1 注册免费 API 和阅读技术文档/38
3.2 获取 API 数据/40
3.3 存储数据到 MongoDB /45
3.3.1 下载并安装 MongoDB/ 45
3.3.2 在 PyCharm 中安装 MongoPlugin/ 46
3.3.3 将数据存入 MongoDB/49
3.4 MongoDB 数据库查询/52
第 4 章大型爬虫案例:抓取某电商网站的商品数据/55
4.1 观察页面特征和解析数据/55
4.2 工作流程分析/64
4.3 构建类目树/65
4.4 获取产品列表/ 68
4.5 代码优化/70
4.6 爬虫效率优化/74
4.7 容错处理/77
第 5 章 Scrapy 爬虫/78
5.1 Scrapy 简介/78
5.2 Scrapy 安装/79
5.3 案例:用 Scrapy 抓取股票行情/ 80
第 6 章 Selenium 爬虫/88
6.1 Selenium 简介/88
6.2 案例:用 Selenium 抓取电商网站数据/90
第 7 章数据库连接和查询/100
7.1 使用 PyMySQL/100
7.1.1 连接数据库/100
7.1.2 案例:某电商网站女装行业 TOP100 销量数据/102
7.2 使用 SQLAlchemy/104
7.2.1 SQLAlchemy 基本介绍/104
7.2.2 SQLAlchemy 基本语法/105
7.3 MongoDB/107
7.3.1 MongoDB 基本语法/107
7.3.2 案例:在某电商网站搜索“连衣裙”的商品数据/107
第 8 章 NumPy/109
8.1 NumPy 简介/109
8.2 一维数组/110
8.2.1 数组与列表的异同/110
8.2.2 数组的创建/111
8.3 多维数组/111
8.3.1 多维数组的高效性能/112
8.3.2 多维数组的索引与切片/113
8.3.3 多维数组的属性/113
8.4 数组的运算/115
第 9 章 pandas 数据清洗/117
9.1 数据读写、选择、整理和描述/117
9.1.1 从 CSV 中读取数据/119
9.1.2 向 CSV 写入数据/120
9.1.3 数据选择/120
9.1.4 数据整理/122
9.1.5 数据描述/123
9.2 数据分组、分割、合并和变形/124
9.2.1 数据分组/124
9.2.2 数据分割/127
9.2.3 数据合并/128
9.2.4 数据变形/134
9.2.5 案例:旅游数据的分析与变形/136
9.3 缺失值、异常值和重复值处理/140
9.3.1 缺失值处理/140
9.3.2 检测和过滤异常值/144
9.3.3 移除重复数据/147
9.3.4 案例:旅游数据的值检查与处理/149
9.4 时序数据处理/152
9.4.1 日期/时间数据转换/152
9.4.2 时序数据基础操作/153
9.4.3 案例:天气数据分析与处理/155
9.5 数据类型转换/158
9.6 正则表达式/ 160
9.6.1 元字符与限定符/161
9.6.2 案例:用正则表达式提取网页文本信息/162
第 10 章综合应用实例/164
10.1 按性价比给用户推荐旅游产品/164
10.1.1 数据采集/165
10.1.2 数据清洗、建模/169
10.2 通过热力图分析为用户提供出行建议/172
10.2.1 某旅游网站热门景点爬虫代码(qunaer_sights.py)/175
10.2.2 提取 CSV 文件中经纬度和销量信息/178
10.2.3 创建景点门票销量热力地图 HTML 文件/179
第 11 章数据可视化/182
11.1 matplotlib/183
11.1.1 画出各省份平均价格、各省份平均成交量柱状图/183
11.1.2 画出各省份平均成交量折线图、柱状图、箱形图和饼图/184
11.1.3 画出价格与成交量的散点图/185
11.2 pyecharts/186
11.2.1 Echarts 简介/186
11.2.2 pyecharts 简介/187
11.2.3 初识 pyecharts,玫瑰相送/187
11.2.4 pyecharts 基本语法/188
11.2.5 基于商业分析的 pyecharts 图表绘制/190
11.2.6 使用 pyecharts 绘制其他图表/199
11.2.7 pyecharts 和 Jupyter/203