在如今的时代,大型数据集唾手可得,含有数百万行的数据文件并不罕见。Python是数据分析师和数据科学家的首选语言。通过本书,即使完全不了解Python,Excel用户也能够学会用Python将烦琐的任务自动化,显著地提高办公效率,并利用Python在数据分析和科学计算方面的突出优势,轻松搞定Excel任务。你将学习如何用pandas替代 Excel函数,以及如何用自动化Python库替代VBA宏和用户定义函数等。
本书既适合Excel用户,也适合Python用户阅读。
●针对零编程基础人士量身打造,适合办公室人群阅读
无须丰富的编程经验即可开始使用Python,借助编程的力量,轻松突破Excel的瓶颈,避免人为错误,将Excel和数据库连接并获取数据,让烦琐的Excel任务自动化,让您能将更多宝贵的时间花在更有价值的任务上。
●xlwings创始人倾力打造,手把手教学
“将Python作为Excel的脚本语言”开源Python库xlwings的诞生很好地回答了这些问题,它让Excel和Python珠联璧合。而作为xlwings的创始人,本书作者将展示如何借用Python的力量,让Excel快得飞起来!
●更多设备,更简化的编程语言,一切只为更好的办公
使用Visual Studio Code和Jupyter笔记本等便捷工具,用Python替代VBA、Power Query和Power Pivot,支持更多设备,让您学习起来更加简单。
费利克斯·朱姆斯坦(Felix Zumstein),流行开源Python库xlwings的创始人。xlwings帮助Excel用户利用Python脚本将任务自动化,从而实现效率飞跃。费利克斯在工作中接触了大量Excel用户,这使他对Excel在各行各业中的使用瓶颈和解决思路拥有深刻的见解。
【译者简介】
冯黎,Python爱好者,从事桌面应用程序、Web应用程序及游戏的开发工作,曾供职于Singtel。热衷于研究各类编程语言,自Python 2.x时期起开始使用Python,深谙Python的语言特性。
前言 xiii
第 一部分 Python入门
第 1 章 为什么要用Python为Excel编程 3
1.1 Excel作为一门编程语言 4
1.1.1 新闻中的Excel 5
1.1.2 编程最佳实践 5
1.1.3 现代Excel 10
1.2 用在Excel上的Python 11
1.2.1 可读性和可维护性 11
1.2.2 标准库和包管理器 12
1.2.3 科学计算 13
1.2.4 现代语言特性 14
1.2.5 跨平台兼容性 15
1.3 小结 15
第 2 章 开发环境 17
2.1 Anaconda Python发行版 18
2.1.1 安装 18
2.1.2 Anaconda Prompt 19
2.1.3 Python REPL:交互式Python会话 21
2.1.4 包管理器:Conda和pip 22
2.1.5 Conda环境 24
2.2 Jupyter笔记本 24
2.2.1 运行Jupyter笔记本 25
2.2.2 笔记本单元格 26
2.2.3 编辑模式与命令模式 28
2.2.4 执行顺序很重要 28
2.2.5 关闭Jupyter笔记本 28
2.3 VS Code 30
2.3.1 安装和配置 31
2.3.2 执行Python脚本 33
2.4 小结 36
第 3 章 Python入门 37
3.1 数据类型 37
3.1.1 对象 38
3.1.2 数值类型 39
3.1.3 布尔值 41
3.1.4 字符串 42
3.2 索引和切片 43
3.2.1 索引 43
3.2.2 切片 44
3.3 数据结构 45
3.3.1 列表 45
3.3.2 字典 47
3.3.3 元组 49
3.3.4 集合 49
3.4 控制流 50
3.4.1 代码块和pass语句 50
3.4.2 if 语句和条件表达式 51
3.4.3 for 循环和while循环 52
3.4.4 列表、字典和集合推导式 55
3.5 组织代码 56
3.5.1 函数 56
3.5.2 模块和import语句 57
3.5.3 datetime类 59
3.6 PEP 8:Python风格指南 61
3.6.1 PEP 8和VS Code 62
3.6.2 类型提示 63
3.7 小结 64
第二部分 pandas入门
第4 章 NumPy基础 67
4.1 NumPy入门 67
4.1.1 NumPy数组 67
4.1.2 向量化和广播 69
4.1.3 通用函数 70
4.2 创建和操作数组 71
4.2.1 存取元素 71
4.2.2 方便的数组构造器 72
4.2.3 视图和副本 73
4.3 小结 73
第 5 章 使用pandas进行数据分析 74
5.1 DataFrame和Series 74
5.1.1 索引 76
5.1.2 列 79
5.2 数据操作 80
5.2.1 选取数据 80
5.2.2 设置数据 85
5.2.3 缺失数据 87
5.2.4 重复数据 89
5.2.5 算术运算 90
5.2.6 处理文本列 91
5.2.7 应用函数 92
5.2.8 视图和副本 93
5.3 组合DataFrame 94
5.3.1 连接 94
5.3.2 连接和合并 95
5.4 描述性统计量和数据聚合 97
5.4.1 描述性统计量 97
5.4.2 分组 98
5.4.3 透视和熔化 99
5.5 绘图 100
5.5.1 Matplotlib 100
5.5.2 Plotly 102
5.6 导入和导出DataFrame 104
5.6.1 导出CSV文件 105
5.6.2 导入CSV文件 106
5.7 小结 107
第6 章 使用pandas进行时序分析 109
6.1 DatetimeIndex 110
6.1.1 创建DatetimeIndex 110
6.1.2 筛选DatetimeIndex 112
6.1.3 处理时区 113
6.2 常见时序操作 114
6.2.1 移动和百分比变化率 114
6.2.2 基数的更改和相关性 116
6.2.3 重新采样 118
6.2.4 滚动窗口 119
6.3 pandas的局限性 120
6.4 小结 121
第三部分 在Excel之外读写Excel文件
第 7 章 使用pandas操作Excel文件 125
7.1 案例研究:Excel报表 125
7.2 使用pandas读写Excel文件 128
7.2.1 read_excel函数和ExcelFile类 128
7.2.2 to_excel方法和ExcelWriter类 133
7.3 使用pandas处理Excel文件的局限性 134
7.4 小结 135
第 8 章 使用读写包操作Excel文件 136
8.1 读写包 136
8.1.1 何时使用何种包 137
8.1.2 excel.py模块 138
8.1.3 OpenPyXL 139
8.1.4 XlsxWriter 143
8.1.5 pyxlsb 145
8.1.6 xlrd、xlwt和xlutils 146
8.2 读写包的高级主题 149
8.2.1 处理大型Excel文件 149
8.2.2 调整DataFrame在Excel中的格式 152
8.2.3 案例研究(复习):Excel报表 157
8.3 小结 158
第四部分 使用xlwings对Excel应用程序进行编程
第 9 章 Excel自动化 161
9.1 开始使用xlwings 162
9.1.1 将Excel用作数据查看器 162
9.1.2 Excel对象模型 163
9.1.3 运行VBA代码 170
9.2 转换器、选项和集合 170
9.2.1 处理DataFrame 171
9.2.2 转换器和选项 172
9.2.3 图表、图片和已定义名称 174
9.2.4 案例研究(再次回顾):Excel报表 177
9.3 高级xlwings主题 179
9.3.1 xlwings的基础 179
9.3.2 提升性能 180
9.3.3 如何弥补缺失的功能 181
9.4 小结 182
第 10 章 Python驱动的Excel工具 183
10.1 利用xlwings将Excel用作前端 183
10.1.1 Excel插件 184
10.1.2 quickstart命令 185
10.1.3 Run main 186
10.1.4 RunPython函数187
10.2 部署 191
10.2.1 Python依赖 191
10.2.2 独立工作簿:脱离xlwings插件 191
10.2.3 配置的层次关系 192
10.2.4 设置 193
10.3 小结 194
第 11 章 Python包追踪器 195
11.1 构建什么样的应用程序 195
11.2 核心功能 197
11.2.1 Web API 198
11.2.2 数据库 201
11.2.3 异常 208
11.3 应用程序架构 210
11.3.1 前端 211
11.3.2 后端 215
11.3.3 调试 217
11.4 小结 219
第 12 章 用户定义函数 220
12.1 UDF入门 220
12.2 案例研究:Google Trends 225
12.2.1 Google Trends简介 225
12.2.2 使用DataFrame和动态数组 226
12.2.3 从Google Trends上获取数据 231
12.2.4 使用UDF绘制图表 234
12.2.5 调试UDF 236
12.3 高级UDF主题 238
12.3.1 基础性能优化 238
12.3.2 缓存 240
12.3.3 sub装饰器 242
12.4 小结 243
附录A Conda环境 245
附录B 高级VS Code功能 248
附录C 高级Python概念 253