科技>计算机>网络与互联网
Python+Excel办公自动化一本通

Python+Excel办公自动化一本通"

作者:杨开振
ISBN:9787121418051
定价:¥99.0
字数:737千字
页数:420
出版时间:2021-08
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书主要面向企业数据分析需求,全面且系统地介绍了如何通过 Python 来分析 Excel 数据。本书主要分为 3 部分:第 1 部分是 Python 3.9 语言基础,主要介绍 Python 的基础知识,为之后的学习奠定基础;第 2 部分是 Excel 数据分析,主要介绍 NumPy、Pandas、Matplotlib、Seaborn、openpyxl 和 xlwings 等内容,使读者可以通过 Python 读取和统计分析 Excel 数据;第 3 部分是 Excel 数据分析实践,使读者回归到实际应用中,并回顾之前学习的知识。本书既适合有一定 Excel 基础,想进一步提高工作效率的办公人员阅读,也适合那些需要在日常工作中处理大量和复杂数据的办公人员阅读,更适合 Python 初学者、编程零基础想通过编程实现办公自动化的人士阅读。

前言

为什么需要使用Python分析Excel数据 在使用传统办公软件进行数据分析的过程中,使用最多的莫过于Excel。但是随着移动互联网时代的到来,数据也越来越多,因此,在很多场景中使用Excel进行数据分析就越来越难,主要的难点集中在以下3个方面。 ?Excel只能处理少量的数据,经常使用Excel的用户应该都发现过这个问题,当Excel的数据量过大时,其查询和计算速度会明显下降,甚至无法正常运行,这对于实际工作来说是不可接受的。 ?Excel的功能是有限的,而通过编程可以获得更多的功能。 ?Excel需要手动反复操作,需要的时间长,并且容易出错,而编写的程序通过反复验证之后,效率可以大幅度提高,并且不易出错。 在移动互联网时代,数据量日益增加,加之业务趋向于复杂化,越来越多的业务人员已经无法只通过Excel来做业务分析,他们需要更快速且复杂的解决方案,此时Python就出现在他们面前。 与传统语言不同,Python更容易学习和使用,门槛较低,很快就成为时代的宠儿,只用简单的十几行代码,甚至几行代码就能够完成所需要的数据分析,使得业务人员通过自己编写代码完成数据分析成为可能。因此,那些需要做大量数据和复杂业务分析的办公自动化岗位从业人员都开始要求学习Python+Excel,这就是我编写本书的原因。 我和数据分析的缘分 我是一个拥有十余年计算机软件编程经验的工作者。毕业之后,我在一家从事银行金融软件的公司工作,主要为银行出具各类统计分析报表,经常和各类数据分析打交道。我当时主要使用Java和数据库编写程序,为银行出具各种报表。这一工作给我带来的最大体会是,只有对银行的各类业务进行深入且专业的学习,才能编写程序完成工作。每次完成工作时,我都感到心满意足,但是银行对报表不断有调整,加上银行内部业务需求的变更,直接导致我需要重新熟悉新的需求之后才能进行开发。因此,只要业务发生变化,就会引发数据分析新的需求,由此可见,数据分析工作会一直继续下去。 虽然我已经毕业十多年了,但是这些经历让我对数据分析有了深刻的认识。我始终都坚持一个观念——数据分析最好由业务人员负责,否则成本会很高。这是因为第三方程序开发人员及其开发的业务系统存在以下几方面缺点。 ?程序开发人员不懂业务,需要深入学习业务知识之后才能进行开发,涉及专业问题时再与业务人员进行沟通,效率一般不会太高,因为需要解释很多专业知识。 ?请第三方开发系统成本高,毕竟软件开发是比较深奥的工作,并且开发成本较高,周期也较长,很多时候并不能及时处理业务。 ?系统开发完成后就会进入维护期,这段时间系统的功能相对固定,很难满足临时提出来的新需求,即便再找程序开发人员来增加功能,也很难保证时效。 因此,对于一些不是特别复杂的数据分析,我建议由业务人员来做。当需要大规模开发时,则由专业的软件公司来做。这样既有助于降低成本、提高灵活性,又能保证数据分析的时效性。 本书的安排 本书按照一本通的要求来编写,尽量使读者可以通过这一本书就能学习和掌握Python+Excel办公自动化的应用,所以本书的内容分为3部分。 ?Python 3.9语言基础:第1~10章,主要介绍Python的安装、数据结构、语法和一些常见的原理和应用,为后续的学习奠定基础。 ?Excel数据分析:第11~16章,主要介绍Excel的处理(xlwings)、数据分析库(NumPy和Pandas)和绘图库(Matplotlib和Seaborn)。 ?Excel数据分析实践:第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个比较严重的问题。 ?第一,眼高手低。有些初学者说他很快就看完书了,我直接回复他,这样就等于没有看过,因为学习编程是实践问题,而不是看的问题,只是看过而没有实践过一律可被归结为零,因为看的过程不会了解其中很多的细节和精妙之处。 ?第二,不能正确地对待错误,在遇到错误或异常时,很多初学者过于沮丧,会选择放弃或依靠他人。在我接触的初学者中,经常有人想都不想就提问,其实这是错误的方式,在发生错误或异常时,首先要做的是查看程序的异常,从而定位问题,其次进行调试,通过监控变量来定位是哪一步走不通,而不是直接向他人请教,学会定位错误比采用正确的方法更重要,因为正确的方法是“鱼”,而定位错误的过程是“渔”,“授人以鱼不如授人以渔”。而事实上,每个人都会犯错误,更何况是初学者。我现在写代码犯错少了,那是因为以前我犯的错误很多,有经验了而已。所以,面对错误是每个编程初学者的必经之路,没有什么值得恐惧的。 ?第三,思而不学。有些初学者没有认真学习书中的内容就根据自己的想法来编写代码,而自己的想法却是错误的。如果你是初学者,那么我建议先学习其他人成功的案例,而非自己的想象,做好了别人的成功案例,就可以建立信心,学习效率也会提高,然后弄明白原理,才能发散自己的思维,毕竟“思而不学则殆”。 ?第四,看不懂而不做。本书中的案例大部分都是可以运行的,在看不懂时,读者可以先“抄袭”,然后自己运行,或者直接调试源码也可以运行。运行起来以后你就会有信心,然后探索原因,而不是什么都不做,傻傻地看不懂,这样是不会进步的。 在学习本书时,只要解决这4个问题,相信你就会事半功倍。古人云:“拳不离手,曲不离口。”学习编程更是如此,要想提高自己的编程能力,肯定需要不断学习和实践。 由于作者的能力和时间有限,书中难免存在不足之处,如果您发现了,请与出版社联系,以方便本书后续的修订。 杨开振

目录

目录 第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 15.2.2 设置坐标轴的刻度 315 15.2.3 设置网格 318 15.2.4 图例 320 15.2.5 设置图表的标题 324 15.2.6 添加数据标签 327 15.2.7 添加图表注释 330 15.2.8 数据表 332 15.3 制作常见的图表 335 15.3.1 折线图 335 15.3.2 柱状图 338 15.3.3 条形图 343 15.3.4 散点图和气泡图 345 15.3.5 面积图 347 15.3.6 雷达图 349 15.3.7 饼图 352 15.4 其他常用的图表技术 356 15.4.1 双轴图表 356 15.4.2 图表的样式 358 15.4.3 图表的保存 359 15.5 将图片保存到Excel中 360 第16章 数据可视化库——Seaborn 363 16.1 安装和初识Seaborn 363 16.2 使用Seaborn绘制常见的图表 364 16.2.1 折线图和点线图 364 16.2.2 柱状图和条形图 368 16.2.3 散点图 371 第3部分 Excel数据分析实践 第17章 电商销售数据分析 374 17.1 准备材料和分析业务 374 17.1.1 销售明细分析 374 17.1.2 经销员信息分析 375 17.1.3 产品信息分析 375 17.1.4 数据的关联关系 375 17.2 数据分析流程 376 17.2.1 读取Excel数据和数据 预处理 376 17.2.2 数据分析 377 17.2.3 绘制图表 384 17.2.4 将数据分析的结果保存到 Excel中 392 第18章 个人贷款数据分析 397 18.1 业务分析 397 18.2 读取Excel数据 399 18.3 查找数据 400 18.3.1 查找某一业务品种和不良 贷款数据 400 18.3.2 根据客户名称进行模糊 查找 401 18.3.3 查找当月发生的和当季到期的贷款 402 18.3.4 找到现存贷款余额最大的10笔贷款 403 18.4 分组统计 403 18.4.1 按照业务品种进行分组 统计 403 18.4.2 按照业务品种和其细分进行 分组统计 404 18.4.3 按照客户经理进行分组 统计 405 18.5 绘制图表 406 18.5.1 绘制客户经理业务状况 图表 406 18.5.2 根据业务品种绘制业务发生笔数的饼图 407 18.5.3 测试图表 408 附录A 查看环境变量 410 附录B Python关键字和内置函数

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个