本书基于哥伦比亚商学院的Python课程,旨在帮助零编程基础的读者掌握Python技能,让读者能够自主执行商业分析任务,并从数据分析中获得重要见解。本书分为两部分:第一部分介绍Python编程的基础概念,比如循环、变量、列表、字典、函数等;第二部分结合实际案例展示如何在商业分析场景中使用Python。学完本书,你将能够熟练使用Jupyter Notebook和pandas库,通过自己编写的Python代码,高效地整理和分析数据,无须完全依靠外部分析团队。无论是自己做商业数据分析,还是希望更好地与数据分析团队沟通,本书都是实用且简单的学习指南。
1 哥伦比亚商学院课程精华,是专门为 MBA 学生和其他需要速成课程的商业人士编写的 Python 编程入门书
2 哥伦比亚商学院名誉院长兼罗素·L. 卡森金融与经济学教授格伦·哈伯德、Pilot Wave Holdings Management 创始人兼首席执行官Afsheen Afshar、哥伦比亚商学院院长兼 David and Lyn Silfen 商学教授Costis Maglaras联合推荐
马坦·格里费尔(Mattan Griffel),哥伦比亚商学院屡获殊荣的兼职助理教授,是两次获得Y Combinator支持的企业家,也是Ophelia和One Month的联合创始人。曾在彭博社、摩根大通、美国运通、百事可乐等公司任职并提供咨询服务。 丹尼尔·格塔(Daniel Guetta),哥伦比亚商学院专业实践副教授、哥伦比亚商业分析计划主任。曾为金融、制药等各个领域的公司提供咨询服务,帮助这些公司利用数据解决最棘手的问题。曾在剑桥大学和麻省理工学院学习物理与数学,并获得哥伦比亚大学运筹学博士学位。
前言
第 一部分
第 1章 开始学Python 4
1.1 本章内容简介 4
1.2 Python编程介绍 4
1.2.1 编程简介 5
1.2.2 什么是Python 9
1.3 搭建开发环境 10
1.3.1 安装文本编辑器 11
1.3.2 安装Python 12
1.3.3 启动命令行 12
1.3.4 快速合理性检测 13
1.4 命令行基础 14
1.4.1 pwd命令 15
1.4.2 open .命令和start .命令 15
1.4.3 ls命令 16
1.4.4 cd命令 17
1.4.5 clear命令 17
1.4.6 为代码创建一个目录 18
1.5 欢乐时光 18
1.5.1 挑战1:修复欢乐时光的bug 22
1.5.2 挑战2:编写你自己的随机数生成器脚本 25
1.6 总结 26
第 2章 Python基础(一) 27
2.1 本章内容简介 27
2.2 运行Python代码的两种方式 27
2.3 输出 29
2.4 解决错误并学会使用搜索引擎 31
2.5 注释 36
2.6 变量 37
2.7 数值和数学运算 39
2.8 字符串 43
2.8.1 字符串函数 45
2.8.2 f字符串 46
2.9 获得用户输入 48
2.9.1 小费计算器挑战 50
2.9.2 小费计算器挑战答案 50
2.10 总结 51
第3 章 Python基础(二) 52
3.1 本章内容简介 52
3.2 条件语句 52
3.2.1 if语句 52
3.2.2 else语句和elif语句 55
3.3 Python中的逻辑运算 57
3.3.1 运算符== 58
3.3.2 运算符!= 58
3.3.3 运算符>和< 58
3.3.4 运算符not 59
3.3.5 运算符and 59
3.3.6 运算符or 59
3.3.7 成员运算符in 60
3.3.8 逻辑运算练习 60
3.4 让if.py不区分大小写 61
3.5 列表 64
3.5.1 从头创建列表 66
3.5.2 使用字符串创建列表 67
3.5.3 访问列表中的元素 68
3.6 循环 70
3.6.1 循环挑战 71
3.6.2 循环挑战解决方案 72
3.6.3 如何重复做某事 73
3.6.4 创建一个新的数值平方列表 73
3.7 FizzBuzz游戏 75
3.7.1 FizzBuzz挑战 75
3.7.2 FizzBuzz挑战解决方案 76
3.8 字典 79
3.8.1 字典挑战,第 一部分 81
3.8.2 字典挑战解决方案,第 一部分 82
3.8.3 增加键-值对 82
3.8.4 字典挑战,第二部分 83
3.8.5 字典挑战解决方案,第二部分 83
3.8.6 字典的用途 84
3.9 总结 85
第4章 Python基础(三) 86
4.1 本章内容简介 86
4.2 函数介绍 86
4.2.1 函数挑战(一) 89
4.2.2 函数挑战的答案(一) 89
4.2.3 函数的作用 90
4.2.4 重构和技术债 92
4.2.5 函数挑战(二) 93
4.2.6 函数挑战的答案(二) 94
4.2.7 函数挑战(三) 95
4.2.8 函数挑战的答案(三)95
4.2.9 函数易错点:不使用return 97
4.2.10 函数易错点:没有获取输入 99
4.2.11 函数的参数 99
4.3 导入Python包 101
4.3.1 Python标准库 103
4.3.2 导入Python包挑战 104
4.3.3 下载和导入第三方包 104
4.4 总结 105
4.5 第 一部分结束 105
第二部分
第5章 Python数据分析简介 109
5.1 本章内容简介 110
5.2 准备工作 110
5.3 Jupyter Notebook简介 110
5.3.1 打开Jupyter Notebook 111
5.3.2 代码单元格 113
5.3.3 Markdown单元格 116
5.3.4 ipynb文件 117
5.4 数据 129
5.5 pandas库 131
5.5.1 pandas数据框 132
5.5.2 通过序列访问列信息 133
5.5.3 行索引和列名 136
5.5.4 head()和shape 138
5.5.5 Jupyter Notebook的代码完善功能 139
5.6 读写数据 142
5.6.1 阅读数据 142
5.6.2 写入数据 143
5.7 列类型 145
5.8 总结 147
第6章 在Python中探索、绘制和修改数据 149
6.1 本章内容简介 149
6.2 预备知识 149
6.3 用pandas给数据排序 150
6.4 用pandas绘图 152
6.5 用pandas理解数据 154
6.5.1 value_counts()函数 154
6.5.2 描述数值列并绘制直方图 158
6.5.3 聚合 163
6.6 过滤数据框 164
6.7 列操作 165
6.7.1 算术运算 166
6.7.2 缺失值 167
6.7.3 逻辑运算 170
6.7.4 isin()函数 173
6.7.5 日期时间列 174
6.7.6 字符串列 177
6.7.7 apply()函数 179
6.8 编辑数据框 184
6.8.1 添加列 184
6.8.2 删除列 184
6.8.3 编辑整列 185
6.8.4 编辑数据框中特定的值 185
6.9 更多的练习 187
6.9.1 各种分析 187
6.9.2 按餐厅计算外卖比例 188
6.9.3 人员配置分析 190
6.10 总结 195
第7章 合并数据集 196
7.1 本章内容简介 196
7.2 准备工作 196
7.3 合并数据集:简介 197
7.4 玩具数据集 198
7.5 5 种类型的连接 200
7.5.1 联合操作 200
7.5.2 内部连接、外部连接、左连接和右连接 201
7.6 pandas里的连接操作 204
7.7 选择合适的连接方式 208
7.7.1 回顾第 一个例子 208
7.7.2 更多的练习 209
7.8 主键和连接 210
7.9 构建迪格订单数据集 212
7.10 总结 217
第8章 聚合 218
8.1 本章内容简介 218
8.2 准备工作 218
8.3 聚合的基础 219
8.3.1 聚合函数 223
8.3.2 使用unstack() 225
8.4 对多列进行计算 226
8.5 更复杂的分组 228
8.5.1 使用序列进行分组 228
8.5.2 使用日期和时间进行分组 229
8.6 总结 234
第9章 实践 235
9.1 本章内容简介 235
9.2 准备工作 235
9.3 新产品分析:为成功创造肥沃的土壤 236
9.4 下一个前沿:设计迪格的外卖专用菜单 238
9.5 为成功而规划人员配置 243
9.6 数据民主化:汇总订单数据集 246
9.7 为新的外卖服务找到肥沃的土壤 249
9.8 了解你的顾客:沙拉爱好者真的更健康吗 254
9.9 订单和天气 258
9.10 总结 264
下一步 265
注释 267