本书便是一本“小白”学习Python数据分析的入门图书。书中不仅有各种分析框架的使用技巧,而且也有各类数据图表的绘制方法。本书通过多个案例讲解,让读者可以体验数据背后的乐趣。
本书共11章,核心内容包括Python数据分析环境安装、NumPy基础、pandas基础、数据读取与存储、数据预处理、数据分组与聚合、matplotlib可视化、地图绘制、pyecharts可视化、时间序列、网站日志分析综合案例实战。
本书适合Python数据分析的初学者和爱好者阅读,也适合作为各类院校相关专业的教学用书,同时还适合相关社会培训机构作为Python数据分析培训教材或者参考书。
封面图
目录
- 前言
- 第1章 Python环境搭建与使用1
- 1.1 Anaconda的安装和使用1
- 1.1.1 Anaconda的安装1
- 1.1.2 Anaconda的使用3
- 1.2 Jupyter Notebook的使用5
- 1.2.1 更改工作空间5
- 1.2.2 界面介绍与使用7
- 第2章 NumPy入门和实战9
- 2.1 ndarray多维数组9
- 2.1.1 创建ndarray数组9
- 2.1.2 ndarray对象属性12
- 2.1.3 ndarray数据类型13
- 2.1.4 数组变换15
- 2.1.5 NumPy的随机数函数18
- 2.2 数组的索引和切片20
- 2.2.1 数组的索引21
- 2.2.2 数组的切片23
- 2.2.3 布尔型索引24
- 2.2.4 花式索引26
- 2.3 数组的运算26
- 2.3.1 数组和标量间的运算26
- 2.3.2 通用函数27
- 2.3.3 条件逻辑运算28
- 2.3.4 统计运算30
- 2.3.5 布尔型数组运算31
- 2.3.6 排序32
- 2.3.7 集合运算33
- 2.3.8 线性代数34
- 2.4 数组的存取34
- 2.4.1 数组的存储35
- 2.4.2 数组的读取35
- 2.5 综合示例——图像变换35
- 第3章 pandas入门和实战38
- 3.1 pandas数据结构38
- 3.1.1 创建Series数据38
- 3.1.2 创建DataFrame数据40
- 3.1.3 索引对象43
- 3.2 pandas索引操作44
- 3.2.1 重新索引45
- 3.2.2 更换索引46
- 3.2.3 索引和选取48
- 3.2.4 操作行和列52
- 3.3 pandas数据运算53
- 3.3.1 算术运算54
- 3.3.2 函数应用和映射55
- 3.3.3 排序56
- 3.3.4 汇总与统计57
- 3.3.5 唯一值和值计数58
- 3.4 层次化索引59
- 3.4.1 层次化索引简介59
- 3.4.2 重排分级顺序60
- 3.4.3 汇总统计61
- 3.5 pandas可视化61
- 3.5.1 线形图61
- 3.5.2 柱状图63
- 3.5.3 直方图和密度图66
- 3.5.4 散点图67
- 3.6 综合示例——小费数据集68
- 3.6.1 数据分析流程68
- 3.6.2 数据来源68
- 3.6.3 定义问题69
- 3.6.4 数据清洗69
- 3.6.5 数据探索70
- 第4章 外部数据的读取与存储73
- 4.1 文本数据的读取与存储73
- 4.1.1 CSV文件的读取73
- 4.1.2 TXT文件的读取80
- 4.1.3 文本数据的存储81
- 4.2 JSON和Excel数据的读取与存储82
- 4.2.1 JSON数据的读取与存储82
- 4.2.2 Excel数据的读取与存储85
- 4.3 数据库的读取与存储87
- 4.3.1 连接数据库87
- 4.3.2 读取数据库88
- 4.3.3 存储数据库90
- 4.4 Web数据的读取90
- 4.4.1 读取HTML表格90
- 4.4.2 网络爬虫92
- 第5章 数据清洗与整理95
- 5.1 数据清洗95
- 5.1.1 处理缺失值95
- 5.1.2 移除重复数据99
- 5.1.3 替换值101
- 5.1.4 利用函数或映射进行数据转换101
- 5.1.5 检测异常值102
- 5.1.6 虚拟变量103
- 5.2 数据合并和重塑104
- 5.2.1 merge合并105
- 5.2.2 concat连接110
- 5.2.3 combine_first合并113
- 5.2.4 数据重塑114
- 5.3 字符串处理116
- 5.3.1 字符串方法117
- 5.3.2 正则表达式118
- 5.4 综合示例——Iris数据集118
- 5.4.1 数据来源118
- 5.4.2 定义问题119
- 5.4.3 数据清洗119
- 5.4.4 数据探索123
- 第6章 数据分组与聚合125
- 6.1 数据分组125
- 6.1.1 GroupBy简介125
- 6.1.2 按列名分组128
- 6.1.3 按列表或元组分组130
- 6.1.4 按字典分组130
- 6.1.5 按函数分组131
- 6.2 聚合运算132
- 6.2.1 聚合函数132
- 6.2.2 多函数应用134
- 6.3 分组运算136
- 6.3.1 transform方法137
- 6.3.2 apply方法138
- 6.4 数据透视表139
- 6.4.1 透视表140
- 6.4.2 交叉表140
- 6.5 综合实例——巴尔的摩公务员工资数据集142
- 6.5.1 数据来源142
- 6.5.2 定义问题143
- 6.5.3 数据清洗143
- 6.5.4 数据探索144
- 第7章 matplotlib可视化148
- 7.1 线形图148
- 7.1.1 基本使用148
- 7.1.2 颜色与线形149
- 7.1.3 点标记151
- 7.2 柱状图152
- 7.2.1 基本使用152
- 7.2.2 刻度与标签155
- 7.2.3 图例156
- 7.3 其他基本图表158
- 7.3.1 散点图158
- 7.3.2 直方图159
- 7.4 自定义设置159
- 7.4.1 图表布局159
- 7.4.2 文本注解162
- 7.4.3 样式与字体163
- 7.5 综合示例——星巴克店铺数据集164
- 7.5.1 数据来源164
- 7.5.2 定义问题166
- 7.5.3 数据清洗166
- 7.5.4 数据探索168
- 第8章 seaborn可视化172
- 8.1 样式与分布图172
- 8.1.1 seaborn样式172
- 8.1.2 坐标轴移除174
- 8.1.3 单变量分布图175
- 8.1.4 多变量分布图178
- 8.2 分类图181
- 8.2.1 分类散点图181
- 8.2.2 箱线图与琴形图183
- 8.2.3 柱状图186
- 8.3 回归图与网格187
- 8.3.1 回归图187
- 8.3.2 网格190
- 8.4 综合示例——泰坦尼克号生还者数据191
- 8.4.1 数据来源191
- 8.4.2 定义问题192
- 8.4.3 数据清洗192
- 8.4.4 数据探索195
- 第9章 pyecharts可视化202
- 9.1 基础图表202
- 9.1.1 pyecharts安装202
- 9.1.2 散点图203
- 9.1.3 折线图204
- 9.1.4 柱状图206
- 9.2 其他图表209
- 9.2.1 饼图210
- 9.2.2 箱线图212
- 9.3 综合示例——糗事百科用户数据213
- 9.3.1 数据来源214
- 9.3.2 定义问题214
- 9.3.3 数据清洗215
- 9.3.4 数据探索217
- 第10章 时间序列224
- 10.1 datetime模块224
- 10.1.1 datetime构造224
- 10.1.2 数据转换225
- 10.2 时间序列基础228
- 10.2.1 时间序列构造228
- 10.2.2 索引与切片229
- 10.3 日期231
- 10.3.1 日期范围231
- 10.3.2 频率与移动233
- 10.4 时期235
- 10.4.1 时期基础235
- 10.4.2 频率转换236
- 10.4.3 时期数据转换237
- 10.5 频率转换与重采样238
- 10.5.1 重采样238
- 10.5.2 降采样239
- 10.5.3 升采样240
- 10.6 综合示例——自行车租赁数据241
- 10.6.1 数据来源241
- 10.6.2 定义问题242
- 10.6.3 数据清洗242
- 10.6.4 数据探索244
- 第11章 综合案例——网站日志分析248
- 11.1 数据来源248
- 11.1.1 网站日志解析248
- 11.1.2 日志数据清洗251
- 11.2 日志数据分析252
- 11.2.1 网站流量分析252
- 11.2.2 状态码分析255
- 11.2.3 IP地址分析258