本书基于作者多年来的课程教学经验和利用Python进行数据分析的工程经验编写而成,面向数据分析的初学者,使其具备利用Python开展数据分析工作、解决各专业问题的思维和能力。高校计算机、大数据、人工智能及其他相关专业均可使用本书作为数据分析课程教材。
数据分析是对数据进行检查、清理、转换和建模的过程,有助于从数据中发现规律并制定科学的决策,目前已广泛应用于自然科学、社会科学和管理科学的各个领域。各专业的学生都有必要掌握数据分析的基本原理和经典方法,了解数据分析能做什么、如何做数据分析,并掌握基本的数据分析流程,当遇到专业问题或进行专业研究时能主动应用数据分析方法解决问题,完成一些具有创新性的工作。
Python是当前数据分析工作中常用的编程语言,它是一种代表简单主义思想的语言,可以使用尽量少的代码完成更多的工作。Python使用户能够专注于解决问题而不是理解语言本身。另外,Python有简洁的说明文档、丰富的第三方库,使得初学者很容易上手。掌握Python编程的基础知识有助于各专业人员更好地开展数据分析相关的工作,更好地解决实际工作中的问题。
本书是在教育部产学合作协同育人项目的支持下,由南开大学计算机学院的教师与北京华育兴业科技有限公司的技术专家合作编写而成的。作者结合多年教学经验,在分析各专业人员的数据分析工作需求的基础上安排本书内容,可作为高校大数据、计算机、人工智能等专业和对数据分析有需求的其他专业学生的教材,也可作为Python数据分析开发人员的参考手册。本书针对每一个知识点提供了实例,通过具体问题向读者展示了基于Python的数据分析程序的编写方法,方便读者学习基于Python开展数据分析工作的方法和过程,帮助读者快速掌握基于Python的数据分析方法并初步具备利用相关知识解决实际数据分析问题的能力。在本书配套资源中,我们也提供了数据分析实例源代码,读者可通过动手实践掌握数据分析方法和基于Python的编程实现,为使用Python编程语言解决更复杂的数据分析问题打下良好的基础。
在利用本书学习Python数据分析知识时,建议读者多思考、多分析、多动手实践。当看到一个数据分析问题时,首先要自己分析该问题,设计求解该问题的算法;然后梳理程序结构,编写程序实现算法;后运行程序,并通过系统的错误提示或通过程序调试方法解决程序中的语法错误和逻辑错误。只有这样,才能真正掌握利用Python进行数据分析工作的方法,进而在实际工作中熟练运用相关知识解决具体问题。另外,丰富的第三方工具包是Python语言的优势之一。在学习一个新的工具包时,首先应掌握该工具包提供的数据类型(可以用于存储哪些数据),再根据需要掌握常用的数据操作方法(可以对数据做哪些操作)。我们在做系统设计时亦是如此,先确定系统中涉及的数据,再考虑可以对这些数据进行哪些操作。
本书的特色有以下几点:
1)问题导向,通过大量程序实例使读者更直观地理解Python数据分析的方法和过程。
2)重点/难点突出,通过大量提示向读者详细说明学习过程中需重点掌握或不容易理解的内容。
3)知识系统完整,对涉及的每个知识点都给出了详细介绍,更加适合初学者作为教材或开发人员作为参考手册。
本书共分为8章,各章内容的简单介绍如下。
第1章首先介绍数据分析的基本概念和基本流程,列举了一些应用场景,使读者认识数据分析在实际应用中的重要意义。接下来,通过一个程序示例帮助读者理解数据分析的基本流程。然后,结合上机操作指导和程序实例简要介绍数据分析领域广泛使用的Python程序设计语言的知识,包括Anaconda集成平台和Jupyter Notebook开发环境的使用方法,以及内置数据类型、程序的控制结构、模块化、面向对象、文件操作、异常处理等。后,提供两个简单的包/模块使用示例。个例子利用csv模块完成CSV文件的读/写操作;第二个例子利用random模块实现生成随机数的功能和利用time模块实现时间处理的功能,并给出排序时间随问题规模(即待排序元素数量)变化的实验。
第2章首先介绍NumPy中用于存储数组数据的ndarray类,通过对列表与ndarray的排序和求和时间的比较分析,讨论了ndarray在大数据分析中的优势,并依次介绍ndarray类对象的常用属性和创建方法。然后,介绍利用tushare工具包获取该章实例所使用的股票数据的方法,并介绍如何利用NumPy提供的loadtxt和savetxt函数完成CSV文件的读写操作。后,结合获取的股票数据,通过实例详细介绍索引和切片、数据拷贝、数据处理和高级索引等方面的知识,使读者能够更好地掌握NumPy的应用方法。
第3章首先介绍Pandas中常用的数据结构Series类和DataFrame类,以及轴标签的数据结构Index类,并通过代码实例详细地介绍它们的常用对象属性和创建方法。然后,详细介绍Series和DataFrame的多种元素访问方式,包括属性运算符访问、索引运算符访问、loc和iloc方法、at和iat方法、head和tail方法等。在此基础上,介绍Pandas提供的数据清洗方法、常用的数据合并方法(merge、join和concat等),以及等常用的数据重塑方法(pivot和melt等)。后通过实例详细介绍利用Pandas工具包进行数据清洗、数据预处理、数据重塑的操作过程,使读者能够更好地掌握Pandas的应用方法。
第4章首先介绍Pandas中用于基本统计分析的相关函数,并依次介绍分组分析、分布分析、交叉分析、结构分析和相关分析的
前言
第1章 基础知识1
1.1 数据分析简介1
1.2 Python编程基础4
1.2.1 Anaconda环境的安装和配置5
1.2.2 Jupyter Notebook的使用7
1.2.3 内置数据类型11
1.2.4 程序的控制结构12
1.2.5 模块化13
1.2.6 面向对象14
1.2.7 文件操作16
1.2.8 异常处理17
1.3 包/模块使用示例18
1.3.1 CSV文件操作18
1.3.2 排序时间测试20
1.4 本章小结24
1.5 习题25
第2章 科学计算基础工具包NumPy27
2.1 ndarray类27
2.1.1 为什么使用ndarray28
2.1.2 ndarray类对象的常用属性30
2.1.3 创建ndarray类对象32
2.2 示例数据35
2.3 索引和切片38
2.4 数据拷贝40
2.5 数据处理43
2.5.1 基础运算43
2.5.2 广播机制47
2.5.3 通用函数48
2.5.4 常用函数和方法51
2.6 高级索引58
2.7 本章小结62
2.8 习题63
第3章 数据分析工具库Pandas66
3.1 Series类66
3.1.1 Series对象的常用属性66
3.1.2 创建Series对象67
3.2 DataFrame对象69
3.2.1 DataFrame对象的常用属性70
3.2.2 创建DataFrame对象72
3.3 Index对象74
3.3.1 Index对象的常用属性74
3.3.2 创建Index对象74
3.4 元素访问方式75
3.4.1 属性运算符访问76
3.4.2 索引运算符访问77
3.4.3 loc访问方法81
3.4.4 iloc访问方法83
3.4.5 at和iat索引方法86
3.4.6 head和tail方法87
3.5 数据清洗88
3.5.1 处理缺失数据88
3.5.2 删除重复数据92
3.6 数据合并94
3.6.1 merge方法94
3.6.2 join方法97
3.6.3 concat方法100
3.7 数据重塑103
3.7.1 pivot方法103
3.7.2 melt方法104
3.8 Pandas数据处理实例106
3.8.1 药品销售数据处理实例106
3.8.2 流感与人口数据处理实例110
3.9 本章小结113
3.10 习题114
第4章 数据统计分析119
4.1 基本统计分析119
4.2 分组分析121
4.2.1 定性分组121
4.2.2 定量分组123
4.3 分布分析124
4.4 交叉分析125
4.5 结构分析127
4.6 相关分析128
4.7 应用实例131
4.8 本章小结133
4.9 习题133
第5章 时间序列分析135
5.1 Datetime模块135
5.2 时间序列基础137
5.3 日期时间处理140
5.4 频率转换与重采样143
5.4.1 频率转换143
5.4.2 重采样145
5.5 本章小结151
5.6 习题151
第6章 数据可视化153
6.1 Matplotlib153
6.1.1 线形图153
6.1.2 条形图155
6.1.3 饼图156
6.1.4 散点图158
6.1.5 直方图159
6.2 Seaborn160
6.2.1 关系图161
6.2.2 分布图163
6.2.3 分类图167
6.2.4 回归图170
6.2.5 热力图172
6.3 Pyecharts173
6.3.1 Pyecharts图表类173
6.3.2 Pyecharts图表配置174
6.4 应用实例177
6.5 本章小结182
6.6 习题183
第7章 网络爬虫187
7.1 网络数据获取187
7.2 数据文件操作196
7.3 应用实例203
7.4 本章小结208
7.5 习题208
第8章 MySQL数据库操作210
8.1 MySQL简介210
8.2 MySQL的安装211
8.3 连接、读取和存储214
8.3.1 创建数据库和数据表214
8.3.2 Python连接数据库217
8.3.3 Python读取数据库218
8.3.4 Python存储数据库219
8.4 数据操作222
8.4.1 查询操作222
8.4.2 插入操作223
8.4.3 更新操作225
8.4.4 删除操作226
8.5 应用实例227
8.6 本章小结233
8.7 习题233
附录 NumPy通用函数235
参考文献238