1 准备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 Python28
参考文献30
2 数据的获取31
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.txt58
2.3.3 动态UA60
2.3.4 代理IP61
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 数据的存取与清洗103
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 NumPy145
3.2.1 NumPy简介145
3.2.2 NumPy基本操作146
3.3 pandas158
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 数据的分析及可视化188
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 高质量作图工具——matplotlib215
4.4.2 快速作图工具——pandas与matplotlib223
4.4.3 简捷作图工具——seaborn与matplotlib226
4.4.4 词云图230
参考文献232
5 Python与生活234
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