本书以Anaconda为主要开发工具,全面系统介绍了Python数据分析的相关知识。全书共9章,第1章介绍了数据分析的基本概念,以及开发工具的安装和使用;第2~6章介绍了Python数据分析的常用库及其应用,包括如何使用NumPy对一维数组和二维数组进行数值计算和操作,如何使用pandas进行数据获取、预处理以及分组与聚合等一些操作,如何使用Matplotlib、Seaborn与Pyecharts进行数据可视化;第7~8章介绍了时间序列和文本数据的分析;第9章介绍了机器学习的相关概念以及最简单的KNN算法;第10章开发了一个数据分析的综合项目,完整呈现了数据分析及可视化的全过程。
本书附有丰富的教学资源,包括教学大纲、教学设计、教学PPT、教学视频、源代码等,为帮助初学者更好地学习本书内容,我们还提供了在线答疑,希望得到更多读者的关注。
本书即可作为高等院校本、专科计算机相关专业及其他工科专业的数据分析教材,也可以作为数据分析爱好者的的入门书籍。
特色一:强调实践导向。
本书除了第1、10章以外,每个章节都为知识点配置了大量示例和章节综合案例,涵盖各种实际应用场景,比如数据清洗、可视化、统计分析和机器学习等,另外第10章配置了实战演练。通过这些案例,读者能够深入了解如何在真实世界中应用Python进行数据分析,并且可以通过实践来巩固所学内容。
特色二:注重全面性。
本书不仅深入探讨了NumPy、pandas、Matplotlib等数据分析常用库的使用方法,还扩展介绍了数据分析相关领域的知识,比如时间序列分析、文本数据分析、机器学习,使读者能够全面了解数据分析的方法和技巧。
另外,本书在第一版的基础上进行了改版,主要内容如下:
(1)新增了机器学习一章,读者可以接触机器学习以及KNN算法。
(2)更新了数据可视化一章,删除bokeh库,增加Pyecharts库。
(3)更新Anaconda工具的版本,升级到2022.10版本,紧跟技术发展需求。
(4)优化内容,给抽象的知识点增加示意图或示例,读者更容易吸收。
(5)更新7个章节案例,案例与知识点联系更紧密。
第1章 数据分析概述 1 1.1 数据分析产生的背景 1 1.2 什么是数据分析 2 1.3 数据分析的应用场景 3 1.4 数据分析的流程 4 1.5 为什么选择 Python 做数据分析 5 1.6 搭建开发环境 6 1.6.1 Anaconda 概述 6 1.6.2 Anaconda 的安装 7 1.6.3 通过 Anaconda 管理包 12 1.7 启用 Jupyter Notebook 14 1.7.1 启动 Anaconda 自带的 Jupyter Notebook 14 1.7.2 Jupyter Notebook 界面详解 15 1.7.3 Jupyter Notebook 的基本使用 17 1.8 常见的数据分析库 20 小结 21 习题 22 第2章 科学计算库 NumPy 23 2.1 认识 NumPy 数组 23 2.1.1 NumPy 数组的相关概念 23 2.1.2 NumPy 数组的属性 25 2.2 创建数组 26 2.3 数组的数据类型 28 2.3.1 查看数据类型 28 2.3.2 转换数据类型 29 2.4 数组的索引和切片 30 2.4.1 数组的索引方式 30 2.4.2 整数索引和切片 31 2.4.3 花式索引 32 2.4.4 布尔索引 33 2.5 数组的算术运算 34 2.5.1 形状相同的数组间的算术运算 34 2.5.2 形状不同的数组间的算术运算 35 2.5.3 数组与标量的算术运算 36 2.6 通用函数 37 2.7 数组的重塑与转置 39 2.7.1 数组的重塑 39 2.7.2 数组的转置 40 2.8 数组的其他操作 43 2.8.1 条件逻辑 43 2.8.2 统计运算 43 2.8.3 数组元素排序 44 2.8.4 检索数组元素是否满足条件 45 2.8.5 查找数组的唯一元素 45 2.8.6 判断元素是否在其他数组中 45 2.9 线性代数模块 46 2.10 随机数模块 47 2.11 案例:计算股票收益率和波动率 48 2.11.1 案例需求 48 2.11.2 数据准备 49 2.11.3 案例实现 49 小结 50 习题 50 第3章 数据分析库 pandas 基础 52 3.1 数据结构 53 3.1.1 Series 53 3.1.2 DataFrame 55 3.2 索引和切片操作 57 3.2.1 索引对象 57 3.2.2 重置索引 58 3.2.3 通过索引和切片获取数据 60 3.2.4 通过 loc 和 iloc 属性获取数据 62 3.3 读写数据 65 3.3.1 读写 CSV 和 TXT 文件的数据 65 3.3.2 读写 Excel 文件的数据 69 3.3.3 读取网页表格的数据 72 3.3.4 读写数据库 73 3.4 数据排序 77 3.4.1 按索引排序 77 3.4.2 按值排序 78 3.5 算术运算与数据对齐 79 3.6 统计计算与描述 80 3.6.1 统计计算 80 3.6.2 统计描述 81 3.7 分层索引操作 82 3.7.1 创建分层索引 82 3.7.2 创建有分层索引的对象 84 3.7.3 使用分层索引获取数据 86 3.7.4 交换索引层级的顺序 87 3.7.5 分层索引排序 87 3.8 案例:陕西高考分数线统计分析 89 3.8.1 案例需求 89 3.8.2 数据准备 89 3.8.3 案例实现 89 小结 92 习题 92 第4章 数据预处理 94 4.1 数据清洗 94 4.1.1 缺失值的检测 95 4.1.2 缺失值的处理 96 4.1.3 重复值的检测 100 4.1.4 重复值的处理 101 4.1.5 异常值的检测 101 4.1.6 异常值的处理 104 4.1.7 转换数据类型 106 4.2 数据合并 108 4.2.1 堆叠合并 108 4.2.2 主键合并 110 4.2.3 根据索引合并 115 4.2.4 合并重叠数据 117 4.3 数据重塑 118 4.3.1 重塑分层索引 118 4.3.2 轴向旋转 121 4.4 数据转换 122 4.4.1 面元划分 122 4.4.2 哑变量处理 123 4.5 案例:预处理二手房数据 124 4.5.1 案例需求 125 4.5.2 数据准备 125 4.5.3 案例实现 127 小结 131 习题 131 第5章 数据聚合与分组运算 134 5.1 分组与聚合的原理 134 5.2 分组操作 135 5.2.1 通过 groupby() 对数据进行分组 135 5.2.2 查看分组信息 140 5.3 数据聚合 141 5.3.1 通过统计方法聚合数据 141 5.3.2 通过 agg() 方法聚合数据 142 5.4 分组级运算 145 5.4.1 数据转换 145 5.4.2 数据应用 147 5.5 案例:篮球运动员信息分析 149 5.5.1 案例需求 149 5.5.2 数据准备 150 5.5.3 案例实现 150 小结 158 习题 159 第6章 数据可视化 161 6.1 数据可视化概述 161 6.1.1 什么是数据可视化 161 6.1.2 常见的图表类型 162 6.1.3 图表的辅助元素 165 6.2 使用 Matplotlib 绘图 166 6.2.1 绘制折线图 166 6.2.2 绘制柱形图 170 6.2.3 绘制直方图 173 6.2.4 绘制散点图 176 6.3 使用 Seaborn 绘图 177 6.3.1 可视化数据的分布 178 6.3.2 用分类数据绘图 181 6.4 使用 Pyecharts 绘图 185 6.4.1 Pyecharts 简介 185 6.4.2 绘制柱形图 188 6.4.3 绘制词云图 191 6.4.4 绘制气泡图 192 6.4.5 绘制圆环图 195 6.5 案例:电影数据分析 196 6.5.1 案例需求 196 6.5.2 数据准备 197 6.5.3 案例实现 198 小结 203 习题 203 第7章 时间序列分析 205 7.1 时间序列概述 205 7.2 时间序列的基本操作 206 7.2.1 创建带时间戳的时间序列 206 7.2.2 获取时间序列子集 207 7.3 固定频率的时间序列 209 7.3.1 创建固定频率的时间序列 209 7.3.2 时间序列的频率与偏移量 211 7.3.3 时间序列的移动 213 7.4 时间周期与计算 214 7.4.1 创建带时期索引的对象 214 7.4.2 时期的频率转换 215 7.5 重采样 216 7.5.1 重采样方法 216 7.5.2 降采样 218 7.5.3 升采样 219 7.6 滑动窗口 220 7.7 案例:某城市报警记录分析 223 7.7.1 案例需求 223 7.7.2 数据准备 223 7.7.3 案例实现 224 小结 229 习题 229 第8章 文本数据分析. 231 8.1 文本数据分析工具 231 8.1.1 认识 NLTK 与 jieba 231 8.1.2 安装 jieba 和 NLTK 语料库 232 8.2 文本预处理 234 8.2.1 基本流程 234 8.2.2 分词 235 8.2.3 词性标注 236 8.2.4 词形归一化 238 8.2.5 删除停用词 240 8.3 文本情感分析 241 8.4 文本相似度 243 8.5 文本分类 246 8.6 案例:商品评论分析 249 8.6.1 案例需求 249 8.6.2 数据准备 250 8.6.3 案例实现 250 小结 253 习题 253 第9章 机器学习入门 256 9.1 机器学习简介 256 9.1.1 什么是机器学习 256 9.1.2 机器学习的基本概念 257 9.1.3 机器学习算法的分类 259 9.1.4 机器学习解决问题的流程 260 9.1.5 认识机器学习库 scikit-learn 262 9.2 KNN 算法 263 9.2.1 KNN 算法的思想 264 9.2.2 使用 sklearn 实现 KNN 算法 264 9.2.3 超参数 266 9.2.4 网格搜索与交叉验证 269 9.2.5 归一化 271 9.2.6 使用 sklearn 实现归一化 273 9.3 案例:预测签到位置 275 9.3.1 案例需求 275 9.3.2 数据准备 276 9.3.3 案例实现 276 小结 280 习题 280 第10章 实战演练——租房数据统计分析 282 10.1 数据收集 282 10.2 数据处理 283 10.2.1 重复值检测与处理 283 10.2.2 数据类型转换 284 10.3 数据分析与展示 285 10.3.1 房源数量分析 285 10.3.2 户型数量分析 287 10.3.3 房源平均租金分析 289 10.3.4 房源面积区间分析 292 小结 294