本書(shū)基于哥倫比亞商學(xué)院的Python課程,旨在幫助零編程基礎(chǔ)的讀者掌握Python技能,讓讀者能夠自主執(zhí)行商業(yè)分析任務(wù),并從數(shù)據(jù)分析中獲得重要見(jiàn)解。本書(shū)分為兩部分:第一部分介紹Python編程的基礎(chǔ)概念,比如循環(huán)、變量、列表、字典、函數(shù)等;第二部分結(jié)合實(shí)際案例展示如何在商業(yè)分析場(chǎng)景中使用Python。學(xué)完本書(shū),你將能夠熟練使用Jupyter Notebook和pandas庫(kù),通過(guò)自己編寫(xiě)的Python代碼,高效地整理和分析數(shù)據(jù),無(wú)須完全依靠外部分析團(tuán)隊(duì)。無(wú)論是自己做商業(yè)數(shù)據(jù)分析,還是希望更好地與數(shù)據(jù)分析團(tuán)隊(duì)溝通,本書(shū)都是實(shí)用且簡(jiǎn)單的學(xué)習(xí)指南。
1 哥倫比亞商學(xué)院課程精華,是專(zhuān)門(mén)為 MBA 學(xué)生和其他需要速成課程的商業(yè)人士編寫(xiě)的 Python 編程入門(mén)書(shū)
2 哥倫比亞商學(xué)院名譽(yù)院長(zhǎng)兼羅素·L. 卡森金融與經(jīng)濟(jì)學(xué)教授格倫·哈伯德、Pilot Wave Holdings Management 創(chuàng)始人兼首席執(zhí)行官Afsheen Afshar、哥倫比亞商學(xué)院院長(zhǎng)兼 David and Lyn Silfen 商學(xué)教授Costis Maglaras聯(lián)合推薦
馬坦·格里費(fèi)爾(Mattan Griffel),哥倫比亞商學(xué)院屢獲殊榮的兼職助理教授,是兩次獲得Y Combinator支持的企業(yè)家,也是Ophelia和One Month的聯(lián)合創(chuàng)始人。曾在彭博社、摩根大通、美國(guó)運(yùn)通、百事可樂(lè)等公司任職并提供咨詢(xún)服務(wù)。 丹尼爾·格塔(Daniel Guetta),哥倫比亞商學(xué)院專(zhuān)業(yè)實(shí)踐副教授、哥倫比亞商業(yè)分析計(jì)劃主任。曾為金融、制藥等各個(gè)領(lǐng)域的公司提供咨詢(xún)服務(wù),幫助這些公司利用數(shù)據(jù)解決最棘手的問(wèn)題。曾在劍橋大學(xué)和麻省理工學(xué)院學(xué)習(xí)物理與數(shù)學(xué),并獲得哥倫比亞大學(xué)運(yùn)籌學(xué)博士學(xué)位。
前言
第 一部分
第 1章 開(kāi)始學(xué)Python 4
1.1 本章內(nèi)容簡(jiǎn)介 4
1.2 Python編程介紹 4
1.2.1 編程簡(jiǎn)介 5
1.2.2 什么是Python 9
1.3 搭建開(kāi)發(fā)環(huán)境 10
1.3.1 安裝文本編輯器 11
1.3.2 安裝Python 12
1.3.3 啟動(dòng)命令行 12
1.3.4 快速合理性檢測(cè) 13
1.4 命令行基礎(chǔ) 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 為代碼創(chuàng)建一個(gè)目錄 18
1.5 歡樂(lè)時(shí)光 18
1.5.1 挑戰(zhàn)1:修復(fù)歡樂(lè)時(shí)光的bug 22
1.5.2 挑戰(zhàn)2:編寫(xiě)你自己的隨機(jī)數(shù)生成器腳本 25
1.6 總結(jié) 26
第 2章 Python基礎(chǔ)(一) 27
2.1 本章內(nèi)容簡(jiǎn)介 27
2.2 運(yùn)行Python代碼的兩種方式 27
2.3 輸出 29
2.4 解決錯(cuò)誤并學(xué)會(huì)使用搜索引擎 31
2.5 注釋 36
2.6 變量 37
2.7 數(shù)值和數(shù)學(xué)運(yùn)算 39
2.8 字符串 43
2.8.1 字符串函數(shù) 45
2.8.2 f字符串 46
2.9 獲得用戶(hù)輸入 48
2.9.1 小費(fèi)計(jì)算器挑戰(zhàn) 50
2.9.2 小費(fèi)計(jì)算器挑戰(zhàn)答案 50
2.10 總結(jié) 51
第3 章 Python基礎(chǔ)(二) 52
3.1 本章內(nèi)容簡(jiǎn)介 52
3.2 條件語(yǔ)句 52
3.2.1 if語(yǔ)句 52
3.2.2 else語(yǔ)句和elif語(yǔ)句 55
3.3 Python中的邏輯運(yùn)算 57
3.3.1 運(yùn)算符== 58
3.3.2 運(yùn)算符!= 58
3.3.3 運(yùn)算符>和< 58
3.3.4 運(yùn)算符not 59
3.3.5 運(yùn)算符and 59
3.3.6 運(yùn)算符or 59
3.3.7 成員運(yùn)算符in 60
3.3.8 邏輯運(yùn)算練習(xí) 60
3.4 讓if.py不區(qū)分大小寫(xiě) 61
3.5 列表 64
3.5.1 從頭創(chuàng)建列表 66
3.5.2 使用字符串創(chuàng)建列表 67
3.5.3 訪問(wèn)列表中的元素 68
3.6 循環(huán) 70
3.6.1 循環(huán)挑戰(zhàn) 71
3.6.2 循環(huán)挑戰(zhàn)解決方案 72
3.6.3 如何重復(fù)做某事 73
3.6.4 創(chuàng)建一個(gè)新的數(shù)值平方列表 73
3.7 FizzBuzz游戲 75
3.7.1 FizzBuzz挑戰(zhàn) 75
3.7.2 FizzBuzz挑戰(zhàn)解決方案 76
3.8 字典 79
3.8.1 字典挑戰(zhàn),第 一部分 81
3.8.2 字典挑戰(zhàn)解決方案,第 一部分 82
3.8.3 增加鍵-值對(duì) 82
3.8.4 字典挑戰(zhàn),第二部分 83
3.8.5 字典挑戰(zhàn)解決方案,第二部分 83
3.8.6 字典的用途 84
3.9 總結(jié) 85
第4章 Python基礎(chǔ)(三) 86
4.1 本章內(nèi)容簡(jiǎn)介 86
4.2 函數(shù)介紹 86
4.2.1 函數(shù)挑戰(zhàn)(一) 89
4.2.2 函數(shù)挑戰(zhàn)的答案(一) 89
4.2.3 函數(shù)的作用 90
4.2.4 重構(gòu)和技術(shù)債 92
4.2.5 函數(shù)挑戰(zhàn)(二) 93
4.2.6 函數(shù)挑戰(zhàn)的答案(二) 94
4.2.7 函數(shù)挑戰(zhàn)(三) 95
4.2.8 函數(shù)挑戰(zhàn)的答案(三)95
4.2.9 函數(shù)易錯(cuò)點(diǎn):不使用return 97
4.2.10 函數(shù)易錯(cuò)點(diǎn):沒(méi)有獲取輸入 99
4.2.11 函數(shù)的參數(shù) 99
4.3 導(dǎo)入Python包 101
4.3.1 Python標(biāo)準(zhǔn)庫(kù) 103
4.3.2 導(dǎo)入Python包挑戰(zhàn) 104
4.3.3 下載和導(dǎo)入第三方包 104
4.4 總結(jié) 105
4.5 第 一部分結(jié)束 105
第二部分
第5章 Python數(shù)據(jù)分析簡(jiǎn)介 109
5.1 本章內(nèi)容簡(jiǎn)介 110
5.2 準(zhǔn)備工作 110
5.3 Jupyter Notebook簡(jiǎn)介 110
5.3.1 打開(kāi)Jupyter Notebook 111
5.3.2 代碼單元格 113
5.3.3 Markdown單元格 116
5.3.4 ipynb文件 117
5.4 數(shù)據(jù) 129
5.5 pandas庫(kù) 131
5.5.1 pandas數(shù)據(jù)框 132
5.5.2 通過(guò)序列訪問(wèn)列信息 133
5.5.3 行索引和列名 136
5.5.4 head()和shape 138
5.5.5 Jupyter Notebook的代碼完善功能 139
5.6 讀寫(xiě)數(shù)據(jù) 142
5.6.1 閱讀數(shù)據(jù) 142
5.6.2 寫(xiě)入數(shù)據(jù) 143
5.7 列類(lèi)型 145
5.8 總結(jié) 147
第6章 在Python中探索、繪制和修改數(shù)據(jù) 149
6.1 本章內(nèi)容簡(jiǎn)介 149
6.2 預(yù)備知識(shí) 149
6.3 用pandas給數(shù)據(jù)排序 150
6.4 用pandas繪圖 152
6.5 用pandas理解數(shù)據(jù) 154
6.5.1 value_counts()函數(shù) 154
6.5.2 描述數(shù)值列并繪制直方圖 158
6.5.3 聚合 163
6.6 過(guò)濾數(shù)據(jù)框 164
6.7 列操作 165
6.7.1 算術(shù)運(yùn)算 166
6.7.2 缺失值 167
6.7.3 邏輯運(yùn)算 170
6.7.4 isin()函數(shù) 173
6.7.5 日期時(shí)間列 174
6.7.6 字符串列 177
6.7.7 apply()函數(shù) 179
6.8 編輯數(shù)據(jù)框 184
6.8.1 添加列 184
6.8.2 刪除列 184
6.8.3 編輯整列 185
6.8.4 編輯數(shù)據(jù)框中特定的值 185
6.9 更多的練習(xí) 187
6.9.1 各種分析 187
6.9.2 按餐廳計(jì)算外賣(mài)比例 188
6.9.3 人員配置分析 190
6.10 總結(jié) 195
第7章 合并數(shù)據(jù)集 196
7.1 本章內(nèi)容簡(jiǎn)介 196
7.2 準(zhǔn)備工作 196
7.3 合并數(shù)據(jù)集:簡(jiǎn)介 197
7.4 玩具數(shù)據(jù)集 198
7.5 5 種類(lèi)型的連接 200
7.5.1 聯(lián)合操作 200
7.5.2 內(nèi)部連接、外部連接、左連接和右連接 201
7.6 pandas里的連接操作 204
7.7 選擇合適的連接方式 208
7.7.1 回顧第 一個(gè)例子 208
7.7.2 更多的練習(xí) 209
7.8 主鍵和連接 210
7.9 構(gòu)建迪格訂單數(shù)據(jù)集 212
7.10 總結(jié) 217
第8章 聚合 218
8.1 本章內(nèi)容簡(jiǎn)介 218
8.2 準(zhǔn)備工作 218
8.3 聚合的基礎(chǔ) 219
8.3.1 聚合函數(shù) 223
8.3.2 使用unstack() 225
8.4 對(duì)多列進(jìn)行計(jì)算 226
8.5 更復(fù)雜的分組 228
8.5.1 使用序列進(jìn)行分組 228
8.5.2 使用日期和時(shí)間進(jìn)行分組 229
8.6 總結(jié) 234
第9章 實(shí)踐 235
9.1 本章內(nèi)容簡(jiǎn)介 235
9.2 準(zhǔn)備工作 235
9.3 新產(chǎn)品分析:為成功創(chuàng)造肥沃的土壤 236
9.4 下一個(gè)前沿:設(shè)計(jì)迪格的外賣(mài)專(zhuān)用菜單 238
9.5 為成功而規(guī)劃人員配置 243
9.6 數(shù)據(jù)民主化:匯總訂單數(shù)據(jù)集 246
9.7 為新的外賣(mài)服務(wù)找到肥沃的土壤 249
9.8 了解你的顧客:沙拉愛(ài)好者真的更健康嗎 254
9.9 訂單和天氣 258
9.10 總結(jié) 264
下一步 265
注釋 267