目 录
前言 xvii
第 一部分 NumPy篇
第 1章 数据分析概述 3
1.1 数据分析简介 3
1.1.1 数据科学是什么? 3
1.1.2 数据分析是什么? 4
1.1.3 应该学些什么? 4
1.2 课程介绍 6
1.2.1 课程说明 6
1.2.2 常见问题 6
1.3 使用 VSCode 7
1.3.1 安装 VSCode 7
1.3.2 安装插件 8
1.3.3 运行代码 9
第 2章 NumPy基础 11
2.1 NumPy是什么? 11
2.2 创建数组 12
2.2.1 基本方法 12
2.2.2 随机数组 18
2.2.3 数组与列表的区别 21
2.3 数组属性 22
2.4 元素操作 24
2.4.1 访问元素 25
2.4.2 修改元素 26
2.4.3 添加元素 26
2.4.4 删除元素 28
2.4.5 切片 29
2.5 数组操作 31
2.5.1 修改形状 31
2.5.2 修改维度 33
2.5.3 翻转数组 34
2.5.4 数组去重 34
2.5.5 合并数组 35
2.5.6 分割数组 37
2.6 各种运算 39
2.6.1 基本运算 39
2.6.2 比较运算 41
2.6.3 标量运算 42
2.6.4 数学函数 43
2.6.5 统计函数 45
2.7 遍历数组 53
2.8 大小排序 55
2.9 本章练习 57
第3章 NumPy进阶 58
3.1 浅拷贝和深拷贝 58
3.1.1 浅拷贝 58
3.1.2 深拷贝 59
3.2 axis的值 60
3.3 广播机制 61
3.3.1 维数不同 61
3.3.2 维数相同 63
3.3.3 标量运算 64
3.4 读写文件 65
3.4.1 读取文件 65
3.4.2 写入文件 66
3.5 矩阵简介 67
3.5.1 全0矩阵 68
3.5.2 全1矩阵 69
3.5.3 单位矩阵 69
3.5.4 随机矩阵 70
3.6 本章练习 71
第二部分 Pandas篇
第4章 Pandas简介 75
4.1 Pandas是什么? 75
4.2 Series 76
4.2.1 创建Series 76
4.2.2 Series的属性 78
4.2.3 获取某行的值 78
4.2.4 深入了解 79
4.3 DataFrame 79
4.3.1 创建DataFrame 79
4.3.2 DataFrame的属性 83
4.3.3 深入了解 86
4.4 DataFrame的数据操作 88
4.4.1 访问数据 88
4.4.2 修改数据 95
4.4.3 添加数据 96
4.4.4 删除数据 98
4.5 遍历行列 101
4.5.1 遍历行 101
4.5.2 遍历列 102
4.6 深入了解 103
4.7 本章练习 105
第5章 获取数据 107
5.1 数据分析流程 107
5.2 读写数据简介 108
5.3 读写JSON 109
5.3.1 JSON简介 109
5.3.2 读取JSON 110
5.3.3 写入JSON 111
5.4 读写CSV 113
5.4.1 CSV简介 113
5.4.2 读取CSV 114
5.4.3 写入CSV 116
5.5 读写Excel 117
5.5.1 Excel简介 117
5.5.2 读取Excel 118
5.5.3 写入Excel 119
5.6 读写HTML 120
5.7 深入文件读取 122
5.7.1 分块读取 122
5.7.2 只读取一部分 124
5.8 读取数据库 125
5.8.1 安装MySQL 125
5.8.2 安装Navicat for MySQL 129
5.8.3 读取MySQL 134
5.9 本章练习 136
第6章 筛选数据 137
6.1 筛选数据简介 137
6.2 获取行、列:loc[]、iloc[]和df[] 138
6.2.1 获取行 138
6.2.2 获取列 139
6.3 重新索引:reindex() 141
6.3.1 语法简介 141
6.3.2 深入了解 143
6.4 获取首尾数据:head()和tail() 145
6.5 随机抽样:sample() 147
6.6 逻辑比较 149
6.6.1 语法简介 149
6.6.2 深入了解 152
6.7 过滤操作 155
6.7.1 query() 155
6.7.2 filter() 157
6.8 模式匹配 159
6.9 本章练习 162
第7章 处理数据 164
7.1 处理数据简介 164
7.2 操作行名和列名 165
7.2.1 设置某一列为行名 165
7.2.2 重置行名 166
7.2.3 修改行名和列名 168
7.3 类型转换 171
7.3.1 针对DataFrame 171
7.3.2 针对某一列 174
7.4 行列转置:T 175
7.5 大小排序:sort_values() 176
7.6 数据排名:rank() 179
7.7 数据替换:replace() 181
7.8 数据移动:shift() 183
7.9 数据清洗 185
7.9.1 缺失值 186
7.9.2 重复值 192
7.9.3 异常值 196
7.10 数据合并 197
7.10.1 轴向合并:concat() 198
7.10.2 主键合并:merge() 203
7.10.3 行列连接:join() 207
7.10.4 纵向合并:append() 208
7.11 字符串处理 209
7.11.1 获取长度:len() 210
7.11.2 统计次数:count() 211
7.11.3 去除空格:strip() 212
7.11.4 替换字符串:replace() 213
7.11.5 分割字符串:split() 214
7.11.6 重复字符串:repeat() 215
7.11.7 连接列:cat() 216
7.11.8 大小写转换 219
7.11.9 判断类型 220
7.11.10 判断包含 221
7.12 自定义函数 222
7.12.1 map() 222
7.12.2 apply() 224
7.12.3 applymap() 226
7.13 实战题:处理天气数据 227
7.14 实战题:拆分数据 229
7.15 本章练习 230
第8章 分析数据 232
8.1 分析数据简介 232
8.2 基本统计函数 232
8.2.1 求和:sum() 233
8.2.2 统计个数:count() 235
8.2.3 求最值:max()与min() 236
8.2.4 求中位数:median() 238
8.2.5 求众数:mode() 239
8.2.6 求平均数:mean() 240
8.2.7 求方差:var() 241
8.2.8 求标准差:std() 242
8.2.9 求分位数:quantile() 243
8.3 其他统计函数 244
8.3.1 统计取值种类 244
8.3.2 统计取值个数 245
8.3.3 求变化百分比 246
8.3.4 求最值的行名 247
8.4 整体情况 247
8.4.1 describe() 248
8.4.2 info() 248
8.5 聚合函数:agg() 249
8.6 数据分组 252
8.6.1 基本语法 252
8.6.2 统计分析 256
8.7 实战题:求平均寿命 258
8.8 本章练习 259
第9章 时间序列 260
9.1 时间序列概述 260
9.1.1 时间序列简介 260
9.1.2 转换类型 261
9.1.3 获取日期 264
9.1.4 索引与切片 266
9.2 重采样:resample() 268
9.2.1 降采样 268
9.2.2 升采样 271
9.3 移动计算:rolling() 273
9.4 分组器:Grouper() 274
9.5 实战题:求每个月的销量总和 276
9.6 本章练习 277
第 10章 高级技术 279
10.1 透视表 279
10.1.1 透视表简介 279
10.1.2 统计函数 281
10.2 交叉表 282
10.3 层次化索引 284
10.3.1 层次化索引简介 284
10.3.2 常用操作 286
10.4 离散化处理 292
10.4.1 离散化简介 292
10.4.2 常用参数 293
10.5 哑变量处理 296
10.6 实战题:创建透视表 298
10.7 本章练习 299
第 11章 其他操作 300
11.1 广播机制 300
11.2 索引对象 301
11.3 inplace参数 304
11.4 缺失值 306
11.5 实战题:统计每一列的缺失值个数 307
11.6 本章练习 308
第三部分 Matplotlib篇
第 12章 基础图表 313
12.1 Matplotlib简介 313
12.2 基本绘图(折线图) 315
12.2.1 基本语法 315
12.2.2 定义样式 317
12.3 通用设置 325
12.3.1 画布样式 325
12.3.2 定义标题 326
12.3.3 定义图例 330
12.3.4 刻度标签 332
12.3.5 刻度范围 335
12.3.6 网格线 338
12.3.7 参考线 340
12.3.8 参考区域 343
12.3.9 注释文本(有指向) 345
12.3.10 注释文本(无指向) 347
12.4 通用样式 350
12.5 散点图 350
12.5.1 基本语法 350
12.5.2 定义样式 352
12.5.3 气泡图 354
12.6 柱形图 356
12.6.1 基本语法 356
12.6.2 高级柱形图 358
12.6.3 条形图 361
12.7 直方图 362
12.7.1 基本语法 362
12.7.2 定义样式 364
12.8 饼状图 366
12.8.1 基本语法 366
12.8.2 定义样式 367
12.8.3 圆环图 372
12.9 实战题:绘制气温折线图 373
12.10 实战题:浏览器所占市场份额柱形图 375
第 13章 高级图表 378
13.1 高级图表简介 378
13.2 箱线图 378
13.2.1 基本语法 378
13.2.2 样式定义 381
13.3 面积图 387
13.3.1 基本语法 387
13.3.2 高级面积图 388
13.4 棉棒图 389
13.4.1 基本语法 389
13.4.2 定义样式 390
13.5 热力图 393
13.5.1 基本语法 393
13.5.2 定义样式 394
13.6 子图表 395
13.6.1 基本语法 395
13.6.2 实际案例 398
13.7 实战题:使用箱线图查找异常值 399
13.8 实战题:绘制每月销量的棉棒图 401
第四部分 工具篇
第 14章 Jupyter Notebook 407
14.1 Jupyter Notebook简介 407
14.2 Jupyter Notebook的使用 408
14.2.1 安装Anaconda 409
14.2.2 运行Jupyter Notebook 409
14.3 应用场景 411
14.4 常用技巧 414
14.4.1 问号查询 414
14.4.2 输出多个变量 415
14.4.3 读取文件 417
第五部分 附录
附录A 读写文件(Pandas) 422
附录B 统计函数(Pandas) 423
附录C 绘图函数(Matplotlib)424