[套装书]Python爬虫、数据分析与可视化:工具详解与案例实战+利用Python进行数据分析(原书第2版)(2册)

作者
成立明 胡书敏 黄勇 韦斯·麦金尼
丛书名
出版社
机械工业出版社
ISBN
9782011181491
简要
简介
内容简介书籍计算机书籍 ---------------------------Python爬虫、数据分析与可视化:工具详解与案例实战--------------------------- 全书共13章。第1~4章为基础篇,主要讲述Python基础知识、Python数据结构、面向对象程序设计思想,Python异常处理和读写文件的技巧;第5~7章为数据分析的工具篇,主要讲述Numpy库、Pandas库和Matplotlib库的基本功能和应用;第8章和第9章为“数据分析高级技能篇”,主要讲述通过爬取技术博客案例、基于Scrapy爬虫框架的实用技巧、数据分析的常用方法,如Python连接操作数据库的相关技能,基于时间序列、概率分析、推断统计和回归分析方法的数学分析方法;第10~13章为“综合案例篇”,主要讲述二手房数据分析案例、股票数据分析案例以及基于Sklearn库的机器学习相关实践。 ---------------------------利用Python进行数据分析(原书第2版)--------------------------- 阅读本书可以获得关于在Python下操作、处理、清洗、规整数据集的完整说明。本书第2版针对Python 3.6进行了更新,并增加了实际案例向你展示如何高效地解决一系列数据分析问题。你将在阅读过程中学习到最新版本的pandas、NumPy、IPython和Jupyter。
目录



---------------------------Python爬虫、数据分析与可视化:工具详解与案例实战---------------------------


前言
第1章 Python编程基础 1
1.1 搭建Python开发环境 1
1.1.1 安装Python解释器 1
1.1.2 安装Python第三方开发包 2
1.1.3 在PyCharm里新建项目和文件 3
1.1.4 在PyCharm里更换Python解释器 5
1.2 实践Python基本语法 5
1.2.1 针对基本数据类型的操作 6
1.2.2 针对字符串的操作 7
1.2.3 多行注释与引入中文 8
1.2.4 条件分支语句 9
1.2.5 循环操作语句 9
1.2.6 break和continue的用法 10
1.2.7 格式化输出语句 11
1.3 定义和调用函数 11
1.4 return的重要性——函数的递归调用 12
1.5 熟悉函数的特殊写法 13
1.5.1 函数作为参数 14
1.5.2 函数作为返回结果 14
1.5.3 匿名函数 15
1.6 本章小结 15
第2章 Python的数据结构 16
2.1 列表 16
2.1.1 定义列表 16
2.1.2 在列表中增、删、改元素 17
2.1.3 列表的切片操作 18
2.1.4 遍历列表 19
2.1.5 列表的常见用法 19
2.2 元组 20
2.2.1 创建和使用元组 20
2.2.2 元组的常见用法 21
2.3 集合 22
2.3.1 创建和使用集合 22
2.3.2 针对集合的常用数据操作 23
2.4 字典 23
2.4.1 创建和使用字典 24
2.4.2 增加、删除和修改字典中的元素 24
2.4.3 遍历字典 25
2.5 针对数据结构的通用性操作 25
2.5.1 通过map方法实现序列的映射 25
2.5.2 filter方法与数据筛选 26
2.5.3 通过reduce方法实现累计效果 27
2.5.4 通过sorted方法排序对象 27
2.6 本章小结 28
第3章 Python面向对象编程 29
3.1 什么是面向对象思想 29
3.2 封装特性 30
3.2.1 创建类并在类里封装属性和方法 30
3.2.2 类方法的第一个参数必须指向实例 31
3.2.3 私有属性的典型错误用法 31
3.2.4 了解其他常用魔术方法 33
3.2.5 从私有属性和私有方法体会封装特性 34
3.3 继承特性 35
3.3.1 继承的语法和使用场景 35
3.3.2 子类无法使用父类的私有属性和方法 36
3.3.3 受保护的属性和方法 37
3.3.4 多重继承与组合模式 38
3.4 多态特性 40
3.4.1 以迭代器为例来理解多态 40
3.4.2 可变参数与方法重载 41
3.4.3 整合使用多态和继承 42
3.5 模块、包以及第三方库 43
3.5.1 通过import重用现有模块中的功能 43
3.5.2 自定义包和使用包 43
3.5.3 引入并使用第三方库 44
3.6 本章小结 45
第4章 异常处理机制与文件读写 46
4.1 通过try…except…finally处理异常 46
4.1.1 处理异常的try…except从句 46
4.1.2 使用异常处理类 47
4.1.3 同时处理多个异常 48
4.1.4 在处理异常时引入else代码块 49
4.1.5 引入finally从句 50
4.2 raise与except的整合使用 51
4.2.1 通过raise抛出异常 51
4.2.2 自定义异常且与except整合使用 51
4.3 异常处理的实践经验 52
4.3.1 尽可能缩小try的代码块 53
4.3.2 用专业的异常处理类针对性地处理异常 53
4.3.3 拿到异常别忽视 54
4.3.4 合理确定异常的影响范围 54
4.4 在读写文件案例中使用异常机制 55
4.4.1 通过os.path获取和文件属性 55
4.4.2 以只读模式打开文件 56
4.4.3 逐行读取文件 58
4.4.4 通过write写文件 59
4.4.5 以添加的方式写文件 59
4.4.6 读写csv文件 60
4.5 本章小结 61
第5章 NumPy数组处理 62
5.1 NumPy库的基础数据结构:ndarray对象 62
5.1.1 通过array方法创建ndarray 62
5.1.2 ndarray的dtype属性 63
5.1.3 创建全0或全1的ndarray 64
5.2 NumPy库的常用操作 65
5.2.1 通过arange方法创建序列数组 65
5.2.2 针对ndarray的数学运算 66
5.2.3 常用的科学计算函数 67
5.2.4 常用的聚合统计函数 68
5.2.5 遍历ndarray数组 69
5.3 针对ndarray的索引和切片操作 69
5.3.1 索引操作 69
5.3.2 布尔索引与条件过滤 70
5.3.3 切片操作与共享内存 70
5.3.4 通过copy函数创建副本 72
5.4 本章小结 72
第6章 Pandas数据清洗 73
6.1 以一维方式存储数据的Series对象 73
6.1.1 Series的常规操作 74
6.1.2 创建并使用Series索引 75
6.1.3 获取Series里的切片数据 76
6.1.4 通过布尔Series获取满足条件的元素 78
6.1.5 遍历Series数据 78
6.2 以表格格式存储数据的DataFrame对象 79
6.2.1 DataFrame对象的常规用法 79
6.2.2 通过loc、iloc和ix提取数据 81
6.2.3 遍历DataFrame里的数据 82
6.3 面向DataFrame的常用数据分析方法 82
6.3.1 对DataFrame数据进行排序 83
6.3.2 以列为单位进行运算 83
6.3.3 增加和删除列 84
6.3.4 过滤和重设数据 85
6.3.5 在DataFrame中进行数据统计分析 85
6.3.6 衡量变量间关联程度的corr方法 86
6.4 Pandas与各类文件的交互 87
6.4.1 DataFrame数据与csv文件的相互转换 87
6.4.2 NaN与缺失值处理 89
6.4.3 DataFrame数据与Excel文件的相互转换 90
6.4.4 DataFrame数据与json文件的相互转换 91
6.5 本章小结 92
第7章 Matplotlib数据可视化 93
7.1 通过Matplotlib绘制各类图形 93
7.1.1 绘制折线图 93
7.1.2 绘图时的通用属性参数 94
7.1.3 绘制柱状图 95
7.1.4 绘制饼图 97
7.1.5 绘制直方图 98
7.2 设置坐标的技巧 99
7.2.1 设置x和y坐标标签文字并展示中文 99
7.2.2 设置坐标的范围 100
7.2.3 设置坐标的主刻度和次刻度 101
7.2.4 设置并旋转坐标刻度文字 102
7.3 增加可视化美观效果 103
7.3.1 设置图例 104
7.3.2 设置中文标题 105
7.3.3 设置网格效果 106
7.4 设置多图和子图效果 107
7.4.1 通过figure对象同时绘制多张图 107
7.4.2 通过add_subplot方法绘制子图 108
7.4.3 通过subplot方法绘制子图 109
7.4.4 子图共享x坐标轴 110
7.4.5 在大图里绘制子图 112
7.5 绘制高级图表 113
7.5.1 绘制散点图 113
7.5.2 绘制热图 114
7.5.3 绘制等值线图 115
7.6 通过mplot3d绘制三维图形 116
7.6.1 绘制三维曲线图 116
7.6.2 绘制三维散点图 117
7.6.3 绘制三维柱状图 118
7.7 本章小结 119
第8章 通过网络爬虫获取数据 120
8.1 和爬虫有关的HTTP 120
8.1.1 基于HTTP的请求处理流程 120
8.1.2 HTTP请求头包含操作系统和浏览器信息 122
8.1.3 Post和Get请求方法 122
8.1.4 HTTP常见的状态码 122
8.2 通过Urllib库获取网页信息 123
8.2.1 通过request爬取网页 123
8.2.2 设置超时时间 124
8.2.3 用URLError处理网络异常 124
8.2.4 设置header属性来模拟浏览器发送请求 125
8.3 通过BeautifulSoup提取页面信息 125
8.3.1 安装BeautifulSoup库 125
8.3.2 用Tag提取HTML元素和属性 126
8.3.3 用NavigableString提取元素值 127
8.3.4 用Comment提取注释 127
8.3.5 制定规则搜索指定的内容 128
8.4 通过正则表达式截取信息 130
8.4.1 查找指定字符串 130
8.4.2 用通用字符来模糊匹配 130
8.4.3 通过原子表来定义匹配规则 131
8.4.4 用findall按匹配规则截取内容 132
8.5 用Scrapy爬取博客园文章信息 134
8.5.1 通过Scrapy命令创建爬虫项目 134
8.5.2 明确爬取目标,制定爬取规则 134
8.5.3 在Item模块里定义数据模型 136
8.5.4 生成爬虫文件,定义爬取动作 136
8.5.5 在pipelines文件里定义数据存储方式 137
8.5.6 启动爬虫程序,观察运行效果 138
8.6 本章小结 139
第9章 数据分析的常用方法 140
9.1 准备并存储数据 140
9.1.1 用Pandas_datareader库获取数据 140
9.1.2 以csv和Excel格式存储数据 141
9.1.3 准备MySQL环境 142
9.1.4 在MySQL里存储数据 142
9.1.5 从数据表里读取数据 145
9.2 描述性统计 146
9.2.1 平均数、中位数和百分位数 146
9.2.2 用箱状图展示分位数 147
9.2.3 统计极差、方差和标准差 148
9.3 基于时间序列的统计方法 148
9.3.1 用rolling方法计算移动平均值 148
9.3.2 基于时间序列的自相关性分析 149
9.3.3 基于时间序列的偏自相关性分析 151
9.3.4 用热力图分析不同时间序列的相关性 152
9.4 概率分析方法与推断统计 154
9.4.1 分析收盘价,绘制小提琴图 154
9.4.2 用直方图来拟合正态分布效果 155
9.4.3 验证序列是否满足正态分布 156
9.4.4 参数估计方法 157
9.4.5 显著性验证 158
9.5 回归分析方法 159
9.5.1 构建一元线性回归模型 159
9.5.2 以多元线性回归模型预测股价 162
9.6 本章小结 164
第10章 案例:图书信息的爬取、数据清洗与分词处理 165
10.1 用Scrapy框架爬取豆瓣网编程图书 165
10.1.1 准备知识:yield的含义 165
10.1.2 明确待爬取的目标,创建Scrapy项目 166
10.1.3 定义图书的数据模型 167
10.1.4 分析页面结构,实现爬虫功能 167
10.1.5 存为csv文件 171
10.1.6 运行爬虫,观察结果 172
10.2 分析图书数据,绘制可视化图表 172
10.2.1 用Pandas库的方法清洗数据 172
10.2.2 出版社出书情况分析 173
10.2.3 评论数最多和最贵的3本图书 175
10.2.4 用直方图绘制评分频次 177
10.2.5 对书名分词,绘制词云 178
10.3 本章小结 179
第11章 案例:二手房数据的爬取、清洗与可视化 180
11.1 用Scrapy框架爬取二手房数据 180
11.1.1 明确爬取目标,创建Scrapy项目 180
11.1.2 定义二手房数据模型 181
11.1.3 分析页面结构,实现爬虫功能 181
11.1.4 定义pipelines逻辑,把数据存为json文件 185
11.1.5 运行爬虫程序,把数据存为json格式 186
11.2 分析二手房数据 186
11.2.1 清洗数据 186
11.2.2 对数据进行基本的分析 187
11.2.3 观察均价和总价的分布情况 189
11.2.4 用散点图展示关注度与价格、面积的关系 190
11.2.5 绘制关于二手房标题和地段的词云 192
11.3 本章小结 194
第12章 案例:股票数据分析与可视化 195
12.1 股市指标的分析与可视化 195
12.1.1 准备股票交易数据 195
12.1.2 用Matplotlib绘制K线图 196
12.1.3 用rolling和mean绘制均线 198
12.1.4 用柱状图描述成交量 199
12.1.5 加工DataFrame数据,绘制MACD图 201
12.1.6 绘制CCI图,进一步熟悉DataFrame 204
12.2 验证常见的股市交易策略 206
12.2.1 验证基于长短均线的交易策略 207
12.2.2 验证基于MACD指标的交易策略 209
12.2.3 验证基于CCI的交易策略 211
12.3 绘制价格通道 212
12.3.1 计算并绘制唐奇安通道 213
12.3.2 计算并绘制布林带通道 214
12.3.3 计算并绘制鳄鱼组线 216
12.4 用机器学习方法预测股票 219
12.4.1 用Lasso和岭回归拟合预测收盘价 219
12.4.2 用SVM和KNN模型预测涨跌 221
12.5 本章小结 224
第13章 基于机器学习算法的数据分析 225
13.1 数据集与机器学习的基础知识 225
13.1.1 获取sklearn提供的数据集 225
13.1.2 训练集、验证集和测试集 226
13.2 一元和多元线性回归案例 227
13.2.1 波士顿房价数据集的初步分析 227
13.2.2 构建波士顿房价的多元线性关系 230
13.2.3 交叉验证的思想及其实现 231
13.3 岭回归、Lasso回归及案例 233
13.3.1 对比线性回归和岭回归 233
13.3.2 基于岭回归拟合波士顿房价 235
13.3.3 Lasso回归 236
13.4 分类算法案例 237
13.4.1 基于线性和高斯内核的SVM分类器 238
13.4.2 用SVM分类器划分鸢尾花 240
13.4.3 基于KNN算法的分类器 243
13.4.4 KNN分类器对酒的分类 244
13.4.5 基于逻辑回归的分类方法 245
13.4.6 用逻辑回归划分鸢尾花 246
13.5 基于手写体数字识别的分类案例 248
13.5.1 观察Digits数据集 248
13.5.2 以训练集和测试集的方式评估结果 249
13.5.3 对比分类模型的预测和真实结果 250
13.6 本章小结 252



---------------------------利用Python进行数据分析(原书第2版)---------------------------


前言1
第1章 准备工作7
1.1 本书内容7
1.1.1 什么类型的数据7
1.2 为何利用Python进行数据分析8
1.2.1 Python作为胶水8
1.2.2 解决“双语言”难题8
1.2.3 为何不使用Python9
1.3 重要的Python库9
1.3.1 NumPy9
1.3.2 pandas10
1.3.3 matplotlib11
1.3.4 IPython与Jupyter11
1.3.5 SciPy12
1.3.6 scikit-learn12
1.3.7 statsmodels13
1.4 安装与设置13
1.4.1 Windows14
1.4.2 Apple(OS X和macOS)14
1.4.3 GNU/Linux14
1.4.4 安装及更新Python包15
1.4.5 Python 2和Python 316
1.4.6 集成开发环境和文本编辑器16
1.5 社区和会议17
1.6 快速浏览本书17
1.6.1 代码示例18
1.6.2 示例数据18
1.6.3导入约定18
1.6.4术语19
第2章 Python语言基础、IPython及Jupyter notebook20
2.1 Python解释器21
2.2 IPython基础22
2.2.1 运行IPython命令行22
2.2.2 运行 Jupyter notebook23
2.2.3 Tab补全25
2.2.4 内省27
2.2.5 %run命令28
2.2.6 执行剪贴板中的程序30
2.2.7 终端快捷键30
2.2.8 关于魔术命令31
2.2.9 matplotlib集成33
2.3 Python语言基础34
2.3.1 语言语义34
2.3.2 标量类型42
2.3.3 控制流49
第3章 内建数据结构、函数及文件54
3.1 数据结构和序列54
3.1.1 元组54
3.1.2 列表57
3.1.3 内建序列函数61
3.1.4 字典64
3.1.5集合67
3.1.6 列表、集合和字典的推导式69
3.2 函数72
3.2.1 命名空间、作用域和本地函数72
3.2.2 返回多个值73
3.2.3 函数是对象74
3.2.4 匿名(Lambda)函数75
3.2.5 柯里化:部分参数应用76
3.2.6 生成器77
3.2.7 错误和异常处理79
3.3 文件与操作系统82
3.3.1 字节与Unicode文件85
3.4 本章小结86
第4章 NumPy基础:数组与向量化计算87
4.1 NumPy ndarray:多维数组对象89
4.1.1 生成ndarray90
4.1.2 ndarray的数据类型92
4.1.3 NumPy数组算术94
4.1.4 基础索引与切片95
4.1.5 布尔索引100
4.1.6 神奇索引103
4.1.7 数组转置和换轴104
4.2 通用函数:快速的逐元素数组函数106
4.3 使用数组进行面向数组编程109
4.3.1 将条件逻辑作为数组操作110
4.3.2 数学和统计方法111
4.3.3 布尔值数组的方法113
4.3.4 排序114
4.3.5 唯一值与其他集合逻辑115
4.4 使用数组进行文件输入和输出115
4.5 线性代数116
4.6 伪随机数生成118
4.7 示例:随机漫步120
4.7.1 一次性模拟多次随机漫步121
4.8 本章小结122
第5章 pandas入门123
5.1 pandas数据结构介绍123
5.1.1 Series123
5.1.2 DataFrame128
5.1.3 索引对象134
5.2 基本功能135
5.2.1 重建索引136
5.2.2 轴向上删除条目138
5.2.3 索引、选择与过滤140
5.2.4 整数索引144
5.2.5 算术和数据对齐145
5.2.6 函数应用和映射150
5.2.7 排序和排名152
5.2.8 含有重复标签的轴索引155
5.3 描述性统计的概述与计算157
5.3.1 相关性和协方差159
5.3.2 唯一值、计数和成员属性161
5.4 本章小结164
第6章 数据载入、存储及文件格式165
6.1 文本格式数据的读写165
6.1.1 分块读入文本文件171
6.1.2 将数据写入文本格式172
6.1.3 使用分隔格式174
6.1.4 JSON数据176
6.1.5 XML和HTML:网络抓取177
6.2 二进制格式180
6.2.1 使用HDF5格式181
6.2.2 读取Microsoft Excel文件183
6.3 与Web API交互184
6.4 与数据库交互186
6.5 本章小结187
第7章 数据清洗与准备188
7.1 处理缺失值188
7.1.1 过滤缺失值189
7.1.2 补全缺失值191
7.2 数据转换194
7.2.1 删除重复值194
7.2.2 使用函数或映射进行数据转换195
7.2.3 替代值197
7.2.4 重命名轴索引198
7.2.5 离散化和分箱199
7.2.6 检测和过滤异常值202
7.2.7 置换和随机抽样203
7.2.8 计算指标/虚拟变量204
7.3 字符串操作207
7.3.1 字符串对象方法208
7.3.2 正则表达式210
7.3.3 pandas中的向量化字符串函数213
7.4 本章小结215
第8章 数据规整:连接、联合与重塑216
8.1 分层索引216
8.1.1重排序和层级排序219
8.1.2 按层级进行汇总统计220
8.1.3 使用DataFrame的列进行索引220
8.2 联合与合并数据集221
8.2.1 数据库风格的DataFrame连接222
8.2.2 根据索引合并226
8.2.3 沿轴向连接230
8.2.4 联合重叠数据235
8.3 重塑和透视236
8.3.1 使用多层索引进行重塑236
8.3.2 将“长”透视为“宽”240
8.3.3 将“宽”透视为“长”242
8.4 本章小结244
第9章 绘图与可视化245
9.1 简明matplotlib API入门245
9.1.1 图片与子图246
9.1.2 颜色、标记和线类型250
9.1.3 刻度、标签和图例252
9.1.4 注释与子图加工255
9.1.5 将图片保存到文件258
9.1.6 matplotlib设置258
9.2 使用pandas和seaborn绘图259
9.2.1 折线图259
9.2.2 柱状图262
9.2.3 直方图和密度图266
9.2.4 散点图或点图269
9.2.5 分面网格和分类数据270
9.3 其他Python可视化工具271
9.4 本章小结272
第10章 数据聚合与分组操作274
10.1 GroupBy机制274
10.1.1 遍历各分组278
10.1.2 选择一列或所有列的子集279
10.1.3 使用字典和Series分组280
10.1.4 使用函数分组281
10.1.5 根据索引层级分组282
10.2 数据聚合282
10.2.1 逐列及多函数应用284
10.2.2 返回不含行索引的聚合数据287
10.3 应用:通用拆分-应用-联合288
10.3.1 压缩分组键290
10.3.2 分位数与桶分析291
10.3.3 示例:使用指定分组值填充缺失值292
10.3.4 示例:随机采样与排列294
10.3.5 示例:分组加权平均和相关性296
10.3.6 示例:逐组线性回归298
10.4 数据透视表与交叉表298
10.4.1 交叉表:crosstab301
10.5 本章小结302
第11章 时间序列303
11.1 日期和时间数据的类型及工具303
11.1.1 字符串与datetime互相转换305
11.2 时间序列基础307
11.2.1 索引、选择、子集308
11.2.2 含有重复索引的时间序列311
11.3 日期范围、频率和移位312
11.3.1 生成日期范围313
11.3.2 频率和日期偏置316
11.3.3 移位(前向和后向)日期317
11.4 时区处理320
11.4.1 时区的本地化和转换320
11.4.2 时区感知时间戳对象的操作323
11.4.3 不同时区间的操作324
11.5 时间区间和区间算术324
11.5.1 区间频率转换326
11.5.2 季度区间频率327
11.5.3 将时间戳转换为区间(以及逆转换)329
11.5.4 从数组生成PeriodIndex330
11.6 重新采样与频率转换332
11.6.1 向下采样334
11.6.2 向上采样与插值336
11.6.3 使用区间进行重新采样337
11.7 移动窗口函数339
11.7.1 指数加权函数342
11.7.2 二元移动窗口函数343
11.7.3 用户自定义的移动窗口函数344
11.8 本章小结344
第12章 高阶pandas346
12.1 分类数据346
12.1.1 背景和目标346
12.1.2 pandas中的Categorical类型348
12.1.3 使用Categorical对象进行计算350
12.1.4 分类方法352
12.2 高阶GroupBy应用355
12.2.1 分组转换和“展开”GroupBy355
12.2.2 分组的时间重新采样359
12.3 方法链技术361
12.3.1 pipe方法362
12.4 本章小结363
第13章 Python建模库介绍364
13.1 pandas与建模代码的结合364
13.2 使用Patsy创建模型描述367
13.2.1 Patsy公式中的数据转换369
13.2.2 分类数据与Patsy371
13.3 statsmodels介绍373
13.3.1 评估线性模型374
13.3.2 评估时间序列处理377
13.4 scikit-learn介绍377
13.5 继续你的教育381
第14章 数据分析示例382
14.1 从Bitly获取1.USA.gov数据382
14.1.1 纯Python时区计数383
14.1.2 使用pandas进行时区计数385
14.2 MovieLens 1M数据集392
14.2.1 测量评价分歧396
14.3 美国1880~2010年的婴儿名字397
14.3.1分析名字趋势402
14.4 美国农业部食品数据库410
14.5 2012年联邦选举委员会数据库416
14.5.1 按职业和雇主的捐献统计419
14.5.2 捐赠金额分桶421
14.5.3 按州进行捐赠统计423
14.6 本章小结424
附录A 高阶NumPy425
附录B 更多IPython系统相关内容457

推荐

车牌查询
桂ICP备20004708号-3