新書推薦:
《
收尸人
》
售價:NT$
332.0
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:NT$
602.0
《
化妆品学原理
》
售價:NT$
254.0
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:NT$
214.0
《
爱你,是我做过最好的事
》
售價:NT$
254.0
|
編輯推薦: |
本书由专业开发人员基于多年数据分析工作实践撰写而成的。
追求一本通的形式来带领读者深入Python Excel数据分析的学习
本书从零基础开始,先讲述Python 3.9语言基础
再讲述如何通过Python来对Excel进行数据分析
后再付诸于实践,强化动手能力。
|
內容簡介: |
本书主要面向企业数据分析需求,全面且系统地介绍了如何通过 Python 来分析 Excel 数据。本书主要分为 3 部分:第 1 部分是 Python 3.9 语言基础,主要介绍 Python 的基础知识,为之后的学习奠定基础;第 2 部分是 Excel 数据分析,主要介绍 NumPy、Pandas、Matplotlib、Seaborn、openpyxl 和 xlwings 等内容,使读者可以通过 Python 读取和统计分析 Excel 数据;第 3 部分是 Excel 数据分析实践,使读者回归到实际应用中,并回顾之前学习的知识。本书既适合有一定 Excel 基础,想进一步提高工作效率的办公人员阅读,也适合那些需要在日常工作中处理大量和复杂数据的办公人员阅读,更适合 Python 初学者、编程零基础想通过编程实现办公自动化的人士阅读。
|
關於作者: |
技术畅销书作家,精通Java互联网技术开发和实践,拥有十余年一线开发经验,著有业内畅销书《深入浅出MyBatis技术原理与实战》《深入浅出Spring?Boot?2.x》和《Spring?Cloud微服务和分布式系统实践》等。写作特点是技术点详尽准确、文字浅显易懂,立志于用图书普及基本技术。
|
目錄:
|
目录
第1部分 Python 3.9语言基础
第1章 计算机语言和Python简介 2
1.1 计算机语言的分类 2
1.1.1 机器语言 2
1.1.2 汇编语言 2
1.1.3 高级语言 3
1.1.4 高级语言的发展趋势 3
1.2 高级语言的分类 5
1.2.1 编译型语言 5
1.2.2 解释型语言 6
1.2.3 混合型语言 6
1.3 使用Python 7
1.3.1 为何要学习Python 7
1.3.2 在Windows操作系统中安装
Python 8
1.3.3 在Ubuntu(UNIX)操作系统中
安装Python 10
1.3.4 使用集成开发环境开发
Python 11
1.4 使用Python分析Excel数据 12
1.4.1 可复用 12
1.4.2 大量数据的需求 12
1.4.3 Python易用易学 12
第2章 变量和简单数据类型 13
2.1 变量 13
2.1.1 变量的使用 13
2.1.2 变量的命名 14
2.1.3 变量的存储 15
2.2 Python中的数据类型 18
2.3 数字 19
2.3.1 算术运算 19
2.3.2 比较运算 21
2.3.3 赋值运算 22
2.3.4 位运算 24
2.3.5 运算符的优先级 27
2.3.6 数字计算中常见的函数 28
2.4 字符串 34
2.4.1 截取子串 35
2.4.2 字符串的运算 37
2.4.3 字符串的格式化 38
2.4.4 Python转义字符 40
2.4.5 字符串常用的函数 42
2.5 字符串和数字相互转换 43
2.6 代码中的注释 44
第3章 控制语句 46
3.1 条件语句 46
3.1.1 简单if语句 46
3.1.2 else分支的使用 47
3.1.3 elif分支的使用 48
3.1.4 条件语句的嵌套 49
3.2 逻辑运算 50
3.2.1 逻辑运算符 51
3.2.2 逻辑运算符的优先级 53
3.2.3 改写闰年判断逻辑 54
3.3 循环语句 54
3.3.1 while语句 54
3.3.2 使用循环的注意事项 56
3.3.3 for语句 57
3.3.4 range函数 58
3.3.5 跳转关键字break、continue和
pass 59
3.3.6 循环的嵌套 61
第4章 列表 64
4.1 列表的基础概念 64
4.1.1 创建列表 64
4.1.2 列表的遍历和下标 64
4.2 访问和操作列表 66
4.2.1 元素的增、删、查、改 66
4.2.2 截取子列表 67
4.2.3 列表的嵌套 68
4.2.4 列表的其他操作 70
4.3 列表函数 71
4.3.1 常见函数 71
4.3.2 排序函数 72
第5章 元组和集合 76
5.1 元组 76
5.1.1 创建元组 76
5.1.2 遍历元组 77
5.1.3 修改和删除元组 78
5.1.4 截取元组 79
5.1.5 其他常见的操作 79
5.1.6 关于元组的函数 80
5.2 集合 80
5.2.1 创建集合 80
5.2.2 新增元素 81
5.2.3 删除元素 82
5.2.4 判断元素是否在集合中 84
5.2.5 遍历集合 84
5.2.6 关于集合的函数 85
第6章 字典 89
6.1 创建字典 89
6.1.1 创建基本的字典 89
6.1.2 创建空字典 90
6.1.3 使用内置函数dict创建字典 90
6.2 访问字典 91
6.2.1 访问字典的值 91
6.2.2 新增/修改字典的值 92
6.2.3 删除 93
6.3 遍历字典 94
6.3.1 对键的遍历 94
6.3.2 对值的遍历 94
6.3.3 对键值的遍历 95
6.4 字典的键值数据类型 95
6.4.1 字典对键值的要求 95
6.4.2 在键值中使用各种数据类型 96
6.4.3 多种数据类型在字典中的
应用 97
6.5 与字典相关的函数 99
第7章 函数 101
7.1 函数的定义 101
7.1.1 定义带有返回值的函数 103
7.1.2 形参和实参 104
7.2 传递参数 104
7.2.1 位置实参 105
7.2.2 关键字实参 105
7.2.3 为参数设置默认值 106
7.3 特殊的参数 107
7.3.1 传递列表 107
7.3.2 传递元组、集合和字典 109
7.3.3 可变参数 110
7.3.4 强制参数位置和关键字 113
7.4 函数返回值 113
7.4.1 返回简单数据类型 114
7.4.2 返回复杂数据类型 114
7.4.3 在循环中返回 115
7.5 函数中的参数 116
7.5.1 传递可更改对象与不可更改
对象 116
7.5.2 函数内外变量的可见性 117
7.6 Lambda表达式 118
7.7 把函数放在不同的模块中 119
7.7.1 将整个模块导入主程序中 119
7.7.2 导入指定的函数 120
7.8 递归函数 121
第8章 类 124
8.1 类的概念 124
8.1.1 定义类和创建对象 124
8.1.2 类的属性的访问 126
8.1.3 封装 129
8.2 继承 131
8.2.1 抽象 131
8.2.2 继承中的方法 133
8.2.3 受保护的属性和方法 135
8.2.4 多重继承 136
8.2.5 多态 139
8.3 拾遗 140
8.3.1 面向对象编程的内置函数 140
8.3.2 类的内部方法 142
8.3.3 类方法和静态方法 143
8.4 导入模块中的类 145
第9章 文件操作和标准库 148
9.1 文件操作 148
9.1.1 文件的读取 148
9.1.2 文件的写入 151
9.1.3 将数据保存为JSON格式 152
9.2 日期时间 156
9.2.1 日期——date类 156
9.2.2 日期时间——datetime类 158
9.2.3 时间差——timedelta类 160
9.3 货币格式化 162
第10章 异常 164
10.1 异常的基础知识 164
10.1.1 Python异常机制 165
10.1.2 except语句 166
10.1.3 else语句和finally语句 167
10.1.4 常见的异常 170
10.2 深入使用异常 172
10.2.1 主动触发异常 172
10.2.2 自定义异常 173
10.2.3 except语句中的异常排序 174
第2部分 Excel数据分析
第11章 使用xlwings处理Excel文档 178
11.1 xlwings的简介和安装 178
11.1.1 xlwings简介 178
11.1.2 安装xlwings 180
11.2 读/写Excel文档 182
11.2.1 读取Excel单元格数据 182
11.2.2 读取多行数据 183
11.2.3 将数据写入Excel 185
11.3 设置单元格 187
11.3.1 字体和格式化 187
11.3.2 边框 188
11.3.3 合并单元格和拆分单元格 190
11.3.4 调整单元格的宽度和高度 192
11.4 处理一些常见的Excel场景 192
11.4.1 新建和读/写多个Excel
文档 192
11.4.2 在同一个Excel文档中写入多个工作表 194
11.4.3 复制数据 194
第12章 数据分析的基础库——NumPy 196
12.1 安装NumPy 197
12.1.1 在Windows下的安装 197
12.1.2 在PyCharm中使用
NumPy 197
12.1.3 在Linux(Ubuntu)下安装
NumPy 197
12.2 创建ndarray对象 198
12.2.1 创建ndarray数组 198
12.2.2 创建特殊的ndarray数组 200
12.3 NumPy数组的属性和数据
类型 204
12.3.1 NumPy数组的属性 204
12.3.2 NumPy数组的数据类型 205
12.4 NumPy切片和索引 206
12.4.1 一维数组的切片和索引 206
12.4.2 二维数组的切片和索引 207
12.4.3 高级切片和索引 208
12.5 数组的常见处理 210
12.5.1 数据预处理 210
12.5.2 数组重塑 212
12.5.3 数组合并 214
12.6 NumPy数组的运算 215
12.6.1 对元素的运算 215
12.6.2 统计分析 217
12.6.3 筛选元素 218
12.6.4 集合运算 220
12.6.5 排序 221
第13章 Pandas基础 227
13.1 创建对应的数据结构 227
13.1.1 Series 227
13.1.2 DataFrame 229
13.2 读/写Excel数据 233
13.2.1 读取Excel数据 233
13.2.2 指定读取Excel的数据
类型 238
13.2.3 写入Excel 239
13.2.4 xlwings与Pandas的结合 241
13.3 定位数据 243
13.3.1 Series的索引和分片 243
13.3.2 DataFrame的索引和分片 244
13.3.3 loc方法和iloc方法 245
13.4 数据预处理 247
13.4.1 处理默认值 247
13.4.2 去除重复数据 250
13.4.3 数据类型转换 253
13.5 增、删、查、改和替换 253
13.5.1 修改元素 253
13.5.2 替换元素 254
13.5.3 删除 255
13.5.4 新增 257
13.5.5 查找 259
13.6 让数据运算起来 261
13.6.1 简易算术运算 261
13.6.2 比较运算 262
13.6.3 汇总运算 263
第14章 Pandas高级应用 269
14.1 修改索引(标签) 269
14.1.1 重设索引(标签) 270
14.1.2 将某列设置为索引
(标签) 270
14.1.3 重命名索引(标签) 271
14.1.4 树形索引 272
14.2 为数据排序 273
14.2.1 没有默认值的排序 273
14.2.2 有默认值的排序 275
14.2.3 数值排名 276
14.3 获取值 279
14.4 转换数组 280
14.4.1 转置 280
14.4.2 转换视角查看数据——
长表转宽表 280
14.4.3 宽表转长表 281
14.5 重要的数据分析功能——
分组统计 282
14.5.1 分组求笔数与求和——
count方法和sum方法 283
14.5.2 对数据进行聚合运算——
aggregate方法 284
14.6 通过数据透视转换视角 287
14.6.1 pivot_table方法概述 287
14.6.2 4个常用的参数 288
14.6.3 合计行列 291
14.7 把数据连接在一起 292
14.7.1 3种关联关系 293
14.7.2 指定关联字段 295
14.7.3 连接方式 297
14.7.4 处理重复列 299
14.8 把数据合并在一起 300
第15章 数据可视化库——Matplotlib 302
15.1 给图表添加坐标系 302
15.1.1 使用面板的add_subplot方法
建立坐标系 304
15.1.2 使用subplot函数建立
坐标系 307
15.1.3 使用subplot2grid函数添加
坐标系 309
15.1.4 使用subplots函数建立
坐标系 310
15.2 设置坐标系和图表 312
15.2.1 设置坐标轴 312
|
內容試閱:
|
为什么需要使用Python分析Excel数据
在使用传统办公软件进行数据分析的过程中,使用多的莫过于Excel。但是随着移动互联网时代的到来,数据也越来越多,因此,在很多场景中使用Excel进行数据分析就越来越难,主要的难点集中在以下3个方面。
lExcel只能处理少量的数据,经常使用Excel的用户应该都发现过这个问题,当Excel的数据量过大时,其查询和计算速度会明显下降,甚至无法正常运行,这对于实际工作来说是不可接受的。
lExcel的功能是有限的,而通过编程可以获得更多的功能。
lExcel需要手动反复操作,需要的时间长,并且容易出错,而编写的程序通过反复验证之后,效率可以大幅度提高,并且不易出错。
在移动互联网时代,数据量日益增加,加之业务趋向于复杂化,越来越多的业务人员已经无法只通过Excel来做业务分析,他们需要更快速且复杂的解决方案,此时Python就出现在他们面前。
与传统语言不同,Python更容易学习和使用,门槛较低,很快就成为时代的宠儿,只用简单的十几行代码,甚至几行代码就能够完成所需要的数据分析,使得业务人员通过自己编写代码完成数据分析成为可能。因此,那些需要做大量数据和复杂业务分析的办公自动化岗位从业人员都开始要求学习Python Excel,这就是我编写本书的原因。
我和数据分析的缘分
我是一个拥有十余年计算机软件编程经验的工作者。毕业之后,我在一家从事银行金融软件的公司工作,主要为银行出具各类统计分析报表,经常和各类数据分析打交道。我当时主要使用Java和数据库编写程序,为银行出具各种报表。这一工作给我带来的体会是,只有对银行的各类业务进行深入且专业的学习,才能编写程序完成工作。每次完成工作时,我都感到心满意足,但是银行对报表不断有调整,加上银行内部业务需求的变更,直接导致我需要重新熟悉新的需求之后才能进行开发。因此,只要业务发生变化,就会引发数据分析新的需求,由此可见,数据分析工作会一直继续下去。
虽然我已经毕业十多年了,但是这些经历让我对数据分析有了深刻的认识。我始终都坚持一个观念——数据分析好由业务人员负责,否则成本会很高。这是因为第三方程序开发人员及其开发的业务系统存在以下几方面缺点。
l程序开发人员不懂业务,需要深入学习业务知识之后才能进行开发,涉及专业问题时再与业务人员进行沟通,效率一般不会太高,因为需要解释很多专业知识。
l请第三方开发系统成本高,毕竟软件开发是比较深奥的工作,并且开发成本较高,周期也较长,很多时候并不能及时处理业务。
l系统开发完成后就会进入维护期,这段时间系统的功能相对固定,很难满足临时提出来的新需求,即便再找程序开发人员来增加功能,也很难保证时效。
因此,对于一些不是特别复杂的数据分析,我建议由业务人员来做。当需要大规模开发时,则由专业的软件公司来做。这样既有助于降低成本、提高灵活性,又能保证数据分析的时效性。
本书的安排
本书按照一本通的要求来编写,尽量使读者可以通过这一本书就能学习和掌握Python Excel办公自动化的应用,所以本书的内容分为3部分。
lPython 3.9语言基础:第1~10章,主要介绍Python的安装、数据结构、语法和一些常见的原理和应用,为后续的学习奠定基础。
lExcel数据分析:第11~16章,主要介绍Excel的处理(xlwings)、数据分析库(NumPy和Pandas)和绘图库(Matplotlib和Seaborn)。
lExcel数据分析实践:第17和18章,通过电商销售数据和个人贷款的项目,读者不仅可以回顾前面的知识,还可以通过实践提高数据分析和绘制图表的能力。
本书使用的各个库的版本如下:Python 3.9.0、xlwings 0.23.2、NumPy 1.20.3、Pandas 1.2.4、Matplotlib 3.3.3、Seaborn 0.11.1。
本书的读者
本书是使用Python实现办公自动化的书籍,既适合有一定Excel基础,想进一步提高工作效率的办公人员阅读,也适合需要在日常工作中处理大量和复杂数据的办公人员阅读。本书从Python基础展开介绍,并且涉及应用与实践方面的内容,因此也适合Python初学者阅读。
如何阅读本书
我其实也是Python Excel的新手,我十多年的工作经验主要是Java和数据库开发。由于我是计算机从业人员,编程经验丰富,而计算机语言是相通的,所以相对来说,我学习Python就比较容易。其实,Python数据分析库在很大程度上和数据库的思想是接近的,因此我可以快速掌握数据分析知识。在编写本书时,我也是一边学习,一边实践,小心求证,并结合了我在工作时遇到的场景和问题。
学习编程不是一两天的事情,也没有捷径,对于初学者来说,我建议先学好Python基础和数据分析库基础,然后进行实践。我之前接触的学习编程的初学者大部分存在4个比较严重的问题。
l,眼高手低。有些初学者说他很快就看完书了,我直接回复他,这样就等于没有看过,因为学习编程是实践问题,而不是看的问题,只是看过而没有实践过一律可被归结为零,因为看的过程不会了解其中很多的细节和精妙之处。
l第二,不能正确地对待错误,在遇到错误或异常时,很多初学者过于沮丧,会选择放弃或依靠他人。在我接触的初学者中,经常有人想都不想就提问,其实这是错误的方式,在发生错误或异常时,首先要做的是查看程序的异常,从而定位问题,其次进行调试,通过监控变量来定位是哪一步走不通,而不是直接向他人请教,学会定位错误比采用正确的方法更重要,因为正确的方法是“鱼”,而定位错误的过程是“渔”,“授人以鱼不如授人以渔”。而事实上,每个人都会犯错误,更何况是初学者。我现在写代码犯错少了,那是因为以前我犯的错误很多,有经验了而已。所以,面对错误是每个编程初学者的必经之路,没有什么值得恐惧的。
l第三,思而不学。有些初学者没有认真学习书中的内容就根据自己的想法来编写代码,而自己的想法却是错误的。如果你是初学者,那么我建议先学习其他人成功的案例,而非自己的想象,做好了别人的成功案例,就可以建立信心,学习效率也会提高,然后弄明白原理,才能发散自己的思维,毕竟“思而不学则殆”。
l第四,看不懂而不做。本书中的案例大部分都是可以运行的,在看不懂时,读者可以先“抄袭”,然后自己运行,或者直接调试源码也可以运行。运行起来以后你就会有信心,然后探索原因,而不是什么都不做,傻傻地看不懂,这样是不会进步的。
在学习本书时,只要解决这4个问题,相信你就会事半功倍。古人云:“拳不离手,曲不离口。”学习编程更是如此,要想提高自己的编程能力,肯定需要不断学习和实践。
由于作者的能力和时间有限,书中难免存在不足之处,如果您发现了,请与出版社联系,以方便本书后续的修订。
杨开振
|
|