前言
为什么要写这本书
作为一名数据分析师,在日常工作中或多或少都会涉及报表制作的工作。虽然我在《对比Excel,轻松学习Python 数据分析》一书中介绍了数据分析涉及的一些基本操作,但更多是从分析层面出发的,比如如何处理异常值、如何进行可视化等。而在实际的报表制作中,会用到很多函数及格式设置,比如调整字体的大小、颜色等,所以本书将围绕报表制作的流程,通过对比Excel 的方式来讲解报表制作中每个环节对应的Python 代码如何实现。
为什么要学习报表自动化
数据分析师的一项重要工作就是制作报表,不同数据分析师制作报表的工作量比重是不一样的,有的人比较多,有的人比较少。数据分析师的核心价值其实不是做报表,而是通过报表去发现业务问题,从而提出优化建议。但是如果制作报表耗费的时间太多,就会导致没有时间去做深入分析,毕竟人的精力是有限的。所以我们要尽可能地实现报表自动化,从而留出更多的时间去做分析。
本书学习建议
学习Python,关键是练习。建议读者在阅读本书后,看一下自己工作中的哪个报表能够用书中学到的知识实现,先逼自己实现个,再实现第二个,……。刚开始会比较痛苦、比较慢,可能写代码要比自己手动做还要慢,不要紧,只要迈出了步,后面就会越来越熟练,越来越快。
本书写了什么
本书主要分为4 个部分:第1 部分介绍Python 基础知识,让读者对Python 中常用的操作和概念有所了解;第2 部分介绍格式相关的设置方法,包括字体设置、条件格式设置等内容;第3 部分介绍各种类型的函数;第4 部分介绍自动化相关的其他技能,比如自动发送邮件、自动打包等操作。
本书读者对象
本书适合每天需要做很多报表,希望通过学习报表自动化来提高工作效率的所有读者,包括但不限于分析师、数据运营、财务等人群。
本书说明
关于本书用到的安装包、数据集、代码等资源,读者可以通过关注我的个人公众号俊红的数据分析之路(ID:zhangjunhong0428)下载并使用。
目录
第1 部分 Python 基础
第1 章 认识自动化报表 / 2
1.1 Excel 的基本组成 2
1.2 制作一份自动化报表的流程3
1.3 用Python 操作Excel 的各种库 . 4
第2 章 Python 基础知识 / 5
2.1 Python 是什么5
2.2 Python 的下载与安装. 5
2.2.1 安装教程. 5
2.2.2 IDE 与IDLE . 18
2.3 Jupyter Notebook 介绍 19
2.3.1 新建Jupyter Notebook 文件 19
2.3.2 运行你的段代码 20
2.3.3 重命名Jupyter Notebook 文件20
2.3.4 保存Jupyter Notebook 文件 21
2.3.5 导入本地Jupyter Notebook 文件 22
2.3.6 Jupyter Notebook 与Markdown. 23
2.4 基本概念23
2.4.1 数. 23
2.4.2 变量 24
2.4.3 标识符. 25
2.4.4 数据类型25
2.4.5 输出与输出格式设置. 25
2.4.6 缩进与注释 26
2.5 字符串 27
2.5.1 字符串概念27
2.5.2 字符串连接. 27
2.5.3 字符串复制. 28
2.5.4 字符串长度 28
2.5.5 字符串查找28
2.5.6 字符串索引29
2.5.7 字符串分隔30
2.5.8 字符删除 31
2.6 数据结构列表 31
2.6.1 列表概念31
2.6.2 新建一个列表31
2.6.3 列表复制 32
2.6.4 列表合并. 32
2.6.5 向列表中插入新的元素 33
2.6.6 获取列表中值出现的次数 33
2.6.7 获取列表中值出现的位置 34
2.6.8 获取列表中指定位置的值 34
2.6.9 对列表中的值进行删除35
2.6.10 对列表中的值进行排序35
2.7 数据结构字典35
2.7.1 字典概念 35
2.7.2 新建一个字典 36
2.7.3 字典的keys()、values()和items()方法36
2.8 数据结构元组37
2.8.1 元组概念 37
2.8.2 新建一个元组 37
2.8.3 获取元组的长度. 37
2.8.4 获取元组内的元素 37
2.8.5 元组与列表相互转换. 38
2.8.6 zip()函数38
2.9 运算符39
2.9.1 算术运算符. 39
2.9.2 比较运算符 39
2.9.3 逻辑运算符. 40
2.10 循环语句 40
2.10.1 for 循环 . 40
2.10.2 while 循环 40
2.11 条件语句 41
2.11.1 if 条件语句 41
2.11.2 else 语句 43
2.11.3 elif 语句 44
2.12 函数. 45
2.12.1 普通函数 45
2.12.2 匿名函数. 46
2.13 高级特性 47
2.13.1 列表生成式. 47
2.13.2 map()函数 48
2.14 库. 48
2.14.1 安装一个新库 49
2.14.2 卸载一个库. 50
第2 部分 格式设置
第3 章 用Python 对报表进行基本操作 / 52
3.1 打开已有的工作簿 52
3.2 创建新的工作簿 54
3.2.1 在创建工作簿时插入数据 54
3.2.2 对单个单元格赋值. 55
3.2.3 对一行单元格赋值 . 55
3.2.4 对多行进行赋值. 56
3.3 Pandas 与openpyxl 之间的转换 57
3.4 Sheet 相关设置 58
3.4.1 新建一个Sheet58
3.4.2 对已有Sheet 进行设置 61
第4 章 用Python 实现单元格选择和字体设置 / 63
4.1 用Python 选择单元格 63
4.1.1 选择单个单元格. 63
4.1.2 选择多个单元格. 63
4.2 用Python 设置Excel 字体 . 64
4.2.1 基本字体相关设置. 64
4.2.2 单元格填充 68
4.2.3 边框线设置 70
4.2.4 案例:批量设置单元格字体 74
第5 章 用Python 设置Excel 对齐方式 / 76
5.1 设置对齐方式 76
5.2 合并与解除单元格81
5.3 设置合并单元格样式 83
5.4 案例:批量设置单元格对齐方式 83
第6 章 用Python 设置Excel 数字、条件格式 / 86
6.1 用Python 设置Excel 数字格式 . 86
6.2 用Python 设置Excel 条件格式 89
6.2.1 突出显示单元格 . 90
6.2.2 数据条92
6.2.3 色阶 96
6.2.4 图标集 99
第7 章 用Python 设置Excel 单元格 / 105
7.1 插入行或列 105
7.2 删除行或列 107
7.3 行高/列宽的设置 109
7.4 隐藏行或列 110
7.5 案例:批量设置多行/列的行高/列宽 111
第8 章 用Python 对Excel 进行编辑 / 113
8.1 数据排序 113
8.2 数据筛选 114
8.3 数据查找与替换 116
第3 部分 函数
第9 章 用Python 实现Excel 中的函数计算 / 118
9.1 函数中的常见错误 . 118
9.1.1 #DIV/0!错误 . 118
9.1.2 #N/A 错误 . 120
9.1.3 #VALUE!错误 . 124
9.1.4 #NAME?错误 125
9.1.5 #REF!错误125
9.2 逻辑函数 . 126
9.2.1 IF()函数:判断条件是否满足 . 126
9.2.2 AND()函数:判断多个条件是否同时满足129
9.2.3 OR()函数:判断多个条件中是否有其中一个满足 130
9.2.4 IFERROR()函数:对错误值进行处理 132
9.3 文本函数. 132
9.3.1 文本截取. 132
9.3.2 文本合并 138
9.3.3 文本查找与替换 142
9.4 日期与时间函数 . 150
9.4.1 获取当前的日期、时间 150
9.4.2 获取日期和时间中的某部分 152
9.4.3 日期时间的运算两个日期之间的差值. 165
9.5 查找与引用. 168
9.5.1 VLOOKUP()函数:在多列以及多表中查找数据 168
9.5.2 ROWS()函数:获取区域中的行数 . 170
9.5.3 COLUMNS()函数:获取区域中的列数 . 171
9.6 数学和三角函数 . 172
9.6.1 常规计算函数 172
9.6.2 格式调整函数 . 176
9.6.3 指数与对数函数 . 183
9.7 统计函数 . 187
9.7.1 均值相关 . 187
9.7.2 计数相关. 190
9.7.3 值函数 . 193
9.7.4 排位相关函数. 196
9.7.5 统计相关函数. 204
9.8 自定义公式 . 206
第4 部分 自动化报表
第10 章 审阅和视图设置 / 210
10.1 新建批注 . 210
10.2 文档保护 212
10.3 冻结窗格 213
第11 章 用Python 绘制Excel 图表 / 216
11.1 图表基本组成元素216
11.2 图表绘制基本流程218
11.3 图表基本设置 220
11.3.1 图表标题 220
11.3.2 坐标轴标题220
11.3.3 图例设置 . 221
11.4 图表绘制. 221
11.4.1 折线图 221
11.4.2 柱状图. 221
11.4.3 面积图223
11.4.4 散点图 . 224
11.4.5 气泡图 226
11.4.6 图表布局. 228
11.5 如何将图片插入Excel 中 229
第12 章 用Python 对Excel 文件进行批量操作 / 231
12.1 OS 库介绍. 231
12.2 OS 库基本操作. 231
12.2.1 获取当前工作路径 . 231
12.2.2 获取一个文件夹下的所有文件名 231
12.2.3 对文件进行重命名232
12.2.4 创建一个文件夹. 232
12.2.5 删除一个文件夹 . 233
12.2.6 删除一个文件 233
12.3 批量操作 . 233
12.3.1 批量读取一个文件夹下的多个文件 233
12.3.2 批量创建文件夹 234
12.3.3 批量重命名文件 235
12.4 其他批量操作 236
12.4.1 批量合并多个文件236
12.4.2 将一份文件按照指定列拆分成多个文件237
第13 章 自动发送邮件 / 239
13.1 使用邮箱的步 . 239
13.2 一份邮件的组成 . 239
13.3 如何发送邮件. 240
13.4 正式发送一份邮件241
13.5 批量发送邮件. 243
第14 章 将Python 代码转化为可执行的程序 / 245
14.1 安装所需要的Python 库245
14.2 对代码进行打包 246
第15 章 工作中的报表自动化实战 / 249
15.1 当日各项指标的同/环比情况 249
15.2 当日各省份创建订单量情况 253
15.3 近一段时间创建订单量趋势. 255
15.4 将不同的结果进行合并256
15.4.1 将不同的结果合并到同一个Sheet 中 256
15.4.2 将不同的结果合并到同一工作簿的不同Sheet 中261