Python数据分析基础.pdf

Python数据分析基础.pdf

Python数据分析基础.pdf


PDF: https://github.com/jash-git/Jash-good-idea-20200304-001

原始碼: https://github.com/cbrownley/foundations-for-analytics-with-python

前言 ………………………………………………………………………………………………………………………………………xi
第1 章 Python 基础 …………………………………………………………………………………………………………..1
1.1 创建Python 脚本…………………………………………………………………………………………………………1
1.2 运行Python 脚本…………………………………………………………………………………………………………3
1.3 与命令行进行交互的几项技巧 …………………………………………………………………………………….6
1.4 Python 语言基础要素…………………………………………………………………………………………………10
1.4.1 数值 ………………………………………………………………………………………………………………10
1.4.2 字符串 …………………………………………………………………………………………………………..12
1.4.3 正则表达式与模式匹配 ………………………………………………………………………………….16
1.4.4 日期 ………………………………………………………………………………………………………………19
1.4.5 列表 ………………………………………………………………………………………………………………21
1.4.6 元组 ………………………………………………………………………………………………………………26
1.4.7 字典 ………………………………………………………………………………………………………………27
1.4.8 控制流 …………………………………………………………………………………………………………..30
1.5 读取文本文件 ……………………………………………………………………………………………………………35
1.5.1 创建文本文件 ………………………………………………………………………………………………..36
1.5.2 脚本和输入文件在同一位置 …………………………………………………………………………..38
1.5.3 读取文件的新型语法 ……………………………………………………………………………………..38
1.6 使用glob 读取多个文本文件 …………………………………………………………………………………….39
1.7 写入文本文件 ……………………………………………………………………………………………………………42
1.7.1 向first_script.py 添加代码 ………………………………………………………………………………42
1.7.2 写入CSV 文件 ……………………………………………………………………………………………….45
1.8 print 语句 ……………………………………………………………………………………………………………….46
1.9 本章练习 ………………………………………………………………………………………………………………….47
viii | 目录
第2 章 CSV 文件 …………………………………………………………………………………………………………….48
2.1 基础Python 与pandas ……………………………………………………………………………………………….50
2.1.1 读写CSV 文件(第1 部分) ……………………………………………………………………………50
2.1.2 基本字符串分析是如何失败的 ……………………………………………………………………….56
2.1.3 读写CSV 文件(第2 部分) ……………………………………………………………………………57
2.2 筛选特定的行 ……………………………………………………………………………………………………………58
2.2.1 行中的值满足某个条件 ………………………………………………………………………………….59
2.2.2 行中的值属于某个集合 ………………………………………………………………………………….60
2.2.3 行中的值匹配于某个模式/ 正则表达式 ………………………………………………………….62
2.3 选取特定的列 ……………………………………………………………………………………………………………64
2.3.1 列索引值 ……………………………………………………………………………………………………….64
2.3.2 列标题 …………………………………………………………………………………………………………..65
2.4 选取连续的行 ……………………………………………………………………………………………………………67
2.5 添加标题行 ……………………………………………………………………………………………………………….69
2.6 读取多个CSV 文件 …………………………………………………………………………………………………..71
2.7 从多个文件中连接数据 ……………………………………………………………………………………………..75
2.8 计算每个文件中值的总和与均值 ……………………………………………………………………………….78
2.9 本章练习 ………………………………………………………………………………………………………………….81
第3 章 Excel 文件 ……………………………………………………………………………………………………………82
3.1 内省Excel 工作簿 ……………………………………………………………………………………………………..84
3.2 处理单个工作表 ………………………………………………………………………………………………………..88
3.2.1 读写Excel 文件 ……………………………………………………………………………………………..88
3.2.2 筛选特定行 ……………………………………………………………………………………………………92
3.2.3 选取特定列 ……………………………………………………………………………………………………98
3.3 读取工作簿中的所有工作表 …………………………………………………………………………………….101
3.3.1 在所有工作表中筛选特定行 …………………………………………………………………………102
3.3.2 在所有工作表中选取特定列 …………………………………………………………………………104
3.4 在Excel 工作簿中读取一组工作表 …………………………………………………………………………..106
3.5 处理多个工作簿 ………………………………………………………………………………………………………108
3.5.1 工作表计数以及每个工作表中的行列计数 ……………………………………………………110
3.5.2 从多个工作簿中连接数据 ……………………………………………………………………………. 111
3.5.3 为每个工作簿和工作表计算总数和均值 ……………………………………………………….113
3.6 本章练习 ………………………………………………………………………………………………………………..117
第4 章 数据库 ……………………………………………………………………………………………………………….118
4.1 Python 内置的sqlite3 模块 …………………………………………………………………………………….119
4.1.1 向表中插入新记录 ……………………………………………………………………………………….124
4.1.2 更新表中记录 ………………………………………………………………………………………………128
4.2 MySQL 数据库 ………………………………………………………………………………………………………..131
4.2.1 向表中插入新记录 ……………………………………………………………………………………….135
目录 | ix
4.2.2 查询一个表并将输出写入CSV 文件 ……………………………………………………………..140
4.2.3 更新表中记录 ………………………………………………………………………………………………142
4.3 本章练习 ………………………………………………………………………………………………………………..146
第5 章 应用程序 …………………………………………………………………………………………………………….147
5.1 在一个大文件集合中查找一组项目 ………………………………………………………………………….147
5.2 为CSV 文件中数据的任意数目分类计算统计量 ………………………………………………………158
5.3 为文本文件中数据的任意数目分类计算统计量 ………………………………………………………..167
5.4 本章练习 ………………………………………………………………………………………………………………..174
第6 章 图与图表 …………………………………………………………………………………………………………….175
6.1 matplotlib ………………………………………………………………………………………………………………175
6.1.1 条形图 …………………………………………………………………………………………………………175
6.1.2 直方图 …………………………………………………………………………………………………………177
6.1.3 折线图 …………………………………………………………………………………………………………178
6.1.4 散点图 …………………………………………………………………………………………………………180
6.1.5 箱线图 …………………………………………………………………………………………………………181
6.2 pandas ……………………………………………………………………………………………………………………183
6.3 ggplot ……………………………………………………………………………………………………………………184
6.4 seaborn ………………………………………………………………………………………………………………….186
第7 章 描述性统计与建模 …………………………………………………………………………………………….192
7.1 数据集 ……………………………………………………………………………………………………………………192
7.1.1 葡萄酒质量 ………………………………………………………………………………………………….192
7.1.2 客户流失 ……………………………………………………………………………………………………..193
7.2 葡萄酒质量 ……………………………………………………………………………………………………………..194
7.2.1 描述性统计 ………………………………………………………………………………………………….194
7.2.2 分组、直方图与t 检验 …………………………………………………………………………………195
7.2.3 成对变量之间的关系和相关性 ……………………………………………………………………..196
7.2.4 使用最小二乘估计进行线性回归 ………………………………………………………………….198
7.2.5 系数解释 ……………………………………………………………………………………………………..200
7.2.6 自变量标准化 ………………………………………………………………………………………………200
7.2.7 预测 …………………………………………………………………………………………………………….202
7.3 客户流失 ………………………………………………………………………………………………………………..203
7.3.1 逻辑斯蒂回归 ………………………………………………………………………………………………205
7.3.2 系数解释 ……………………………………………………………………………………………………..207
7.3.3 预测 …………………………………………………………………………………………………………….208
第8 章 按计划自动运行脚本…………………………………………………………………………………………209
8.1 任务计划程序(Windows 系统)……………………………………………………………………………….209
8.2 cron 工具(macOS 系统和Unix 系统) ……………………………………………………………………..215
x | 目录
8.2.1 cron 表文件:一次性设置 …………………………………………………………………………….216
8.2.2 向cron 表文件中添加cron 任务 ……………………………………………………………………216
第9 章 从这里启航 ………………………………………………………………………………………………………..220
9.1 更多的标准库模块和内置函数 …………………………………………………………………………………221
9.1.1 Python 标准库(PSL):更多的标准模块 ……………………………………………………..221
9.1.2 内置函数 ……………………………………………………………………………………………………..222
9.2 Python 包索引(PyPI):更多的扩展模块 ………………………………………………………………..222
9.2.1 NumPy …………………………………………………………………………………………………………223
9.2.2 SciPy ……………………………………………………………………………………………………………227
9.2.3 Scikit-Learn ………………………………………………………………………………………………….230
9.2.4 更多的扩展包 ………………………………………………………………………………………………232
9.3 更多的数据结构 ………………………………………………………………………………………………………232
9.3.1 栈 ……………………………………………………………………………………………………………….233
9.3.2 队列 …………………………………………………………………………………………………………….233
9.3.3 图 ……………………………………………………………………………………………………………….233
9.3.4 树 ……………………………………………………………………………………………………………….234
9.4 从这里启航 ……………………………………………………………………………………………………………..234
附录A 下载指南 …………………………………………………………………………………………………………….236
附录B 练习答案 …………………………………………………………………………………………………………….245
作者介绍 ……………………………………………………………………………………………………………………………247
封面介绍 ……………………………………………………………………………………………………………………………247
xi

前言 ………………………………………………………………………………………………………………………………………xi
第1 章 Python 基礎 …………………………………………………………………………………………………………..1
1.1 創建Python 腳本…………………………………………………………………………………………………………1
1.2 運行Python 腳本…………………………………………………………………………………………………………3
1.3 與命令列進行交互的幾項技巧 …………………………………………………………………………………….6
1.4 Python 語言基礎要素…………………………………………………………………………………………………10
1.4.1 數值 ………………………………………………………………………………………………………………10
1.4.2 字串 …………………………………………………………………………………………………………..12
1.4.3 規則運算式與模式匹配 ………………………………………………………………………………….16
1.4.4 日期 ………………………………………………………………………………………………………………19
1.4.5 列表 ………………………………………………………………………………………………………………21
1.4.6 元組 ………………………………………………………………………………………………………………26
1.4.7 字典 ………………………………………………………………………………………………………………27
1.4.8 控制流 …………………………………………………………………………………………………………..30
1.5 讀取文字檔 ……………………………………………………………………………………………………………35
1.5.1 創建文字檔 ………………………………………………………………………………………………..36
1.5.2 腳本和輸入檔在同一位置 …………………………………………………………………………..38
1.5.3 讀取檔的新型語法 ……………………………………………………………………………………..38
1.6 使用glob 讀取多個文字檔 …………………………………………………………………………………….39
1.7 寫入文字檔 ……………………………………………………………………………………………………………42
1.7.1 向first_script.py 添加代碼 ………………………………………………………………………………42
1.7.2 寫入CSV 文件 ……………………………………………………………………………………………….45
1.8 print 語句 ……………………………………………………………………………………………………………….46
1.9 本章練習 ………………………………………………………………………………………………………………….47
viii | 目錄
第2 章 CSV 文件 …………………………………………………………………………………………………………….48
2.1 基礎Python 與pandas ……………………………………………………………………………………………….50
2.1.1 讀寫CSV 檔(第1 部分) ……………………………………………………………………………50
2.1.2 基底字元串分析是如何失敗的 ……………………………………………………………………….56
2.1.3 讀寫CSV 檔(第2 部分) ……………………………………………………………………………57
2.2 篩選特定的行 ……………………………………………………………………………………………………………58
2.2.1 行中的值滿足某個條件 ………………………………………………………………………………….59
2.2.2 行中的值屬於某個集合 ………………………………………………………………………………….60
2.2.3 行中的值匹配於某個模式/ 規則運算式 ………………………………………………………….62
2.3 選取特定的列 ……………………………………………………………………………………………………………64
2.3.1 列索引值 ……………………………………………………………………………………………………….64
2.3.2 列標題 …………………………………………………………………………………………………………..65
2.4 選取連續的行 ……………………………………………………………………………………………………………67
2.5 添加標題行 ……………………………………………………………………………………………………………….69
2.6 讀取多個CSV 檔 …………………………………………………………………………………………………..71
2.7 從多個檔中連接資料 ……………………………………………………………………………………………..75
2.8 計算每個檔中值的總和與均值 ……………………………………………………………………………….78
2.9 本章練習 ………………………………………………………………………………………………………………….81
第3 章 Excel 文件 ……………………………………………………………………………………………………………82
3.1 內省Excel 工作簿 ……………………………………………………………………………………………………..84
3.2 處理單個工作表 ………………………………………………………………………………………………………..88
3.2.1 讀寫Excel 文件 ……………………………………………………………………………………………..88
3.2.2 篩選特定行 ……………………………………………………………………………………………………92
3.2.3 選取特定列 ……………………………………………………………………………………………………98
3.3 讀取工作簿中的所有工作表 …………………………………………………………………………………….101
3.3.1 在所有工作表中篩選特定行 …………………………………………………………………………102
3.3.2 在所有工作表中選取特定列 …………………………………………………………………………104
3.4 在Excel 工作簿中讀取一組工作表 …………………………………………………………………………..106
3.5 處理多個工作簿 ………………………………………………………………………………………………………108
3.5.1 工作表計數以及每個工作表中的行列計數 ……………………………………………………110
3.5.2 從多個工作簿中連接資料 ……………………………………………………………………………. 111
3.5.3 為每個工作簿和工作表計算總數和均值 ……………………………………………………….113
3.6 本章練習 ………………………………………………………………………………………………………………..117
第4 章 資料庫 ……………………………………………………………………………………………………………….118
4.1 Python 內置的sqlite3 模組 …………………………………………………………………………………….119
4.1.1 向表中插入新記錄 ……………………………………………………………………………………….124
4.1.2 更新表中記錄 ………………………………………………………………………………………………128
4.2 MySQL 資料庫 ………………………………………………………………………………………………………..131
4.2.1 向表中插入新記錄 ……………………………………………………………………………………….135
目錄 | ix
4.2.2 查詢一個表並將輸出寫入CSV 檔 ……………………………………………………………..140
4.2.3 更新表中記錄 ………………………………………………………………………………………………142
4.3 本章練習 ………………………………………………………………………………………………………………..146
第5 章 應用程式 …………………………………………………………………………………………………………….147
5.1 在一個大檔集合中查找一組專案 ………………………………………………………………………….147
5.2 為CSV 檔中資料的任意數目分類計算統計量 ………………………………………………………158
5.3 為文字檔中資料的任意數目分類計算統計量 ………………………………………………………..167
5.4 本章練習 ………………………………………………………………………………………………………………..174
第6 章 圖與圖表 …………………………………………………………………………………………………………….175
6.1 matplotlib ………………………………………………………………………………………………………………175
6.1.1 橫條圖 …………………………………………………………………………………………………………175
6.1.2 長條圖 …………………………………………………………………………………………………………177
6.1.3 折線圖 …………………………………………………………………………………………………………178
6.1.4 散點圖 …………………………………………………………………………………………………………180
6.1.5 箱線圖 …………………………………………………………………………………………………………181
6.2 pandas ……………………………………………………………………………………………………………………183
6.3 ggplot ……………………………………………………………………………………………………………………184
6.4 seaborn ………………………………………………………………………………………………………………….186
第7 章 描述性統計與建模 …………………………………………………………………………………………….192
7.1 資料集 ……………………………………………………………………………………………………………………192
7.1.1 葡萄酒品質 ………………………………………………………………………………………………….192
7.1.2 客戶流失 ……………………………………………………………………………………………………..193
7.2 葡萄酒品質 ……………………………………………………………………………………………………………..194
7.2.1 描述性統計 ………………………………………………………………………………………………….194
7.2.2 分組、長條圖與t 檢驗 …………………………………………………………………………………195
7.2.3 成對變數之間的關係和相關性 ……………………………………………………………………..196
7.2.4 使用最小二乘估計進行線性回歸 ………………………………………………………………….198
7.2.5 係數解釋 ……………………………………………………………………………………………………..200
7.2.6 引數標準化 ………………………………………………………………………………………………200
7.2.7 預測 …………………………………………………………………………………………………………….202
7.3 客戶流失 ………………………………………………………………………………………………………………..203
7.3.1 邏輯斯蒂回歸 ………………………………………………………………………………………………205
7.3.2 係數解釋 ……………………………………………………………………………………………………..207
7.3.3 預測 …………………………………………………………………………………………………………….208
第8 章 按計劃自動運行腳本…………………………………………………………………………………………209
8.1 任務計畫程式(Windows 系統)……………………………………………………………………………….209
8.2 cron 工具(macOS 系統和Unix 系統) ……………………………………………………………………..215
x | 目錄
8.2.1 cron 表文件:一次性設置 …………………………………………………………………………….216
8.2.2 向cron 表檔中添加cron 任務 ……………………………………………………………………216
第9 章 從這裡啟航 ………………………………………………………………………………………………………..220
9.1 更多的標準庫模組和內置函數 …………………………………………………………………………………221
9.1.1 Python 標準庫(PSL):更多的標準模組 ……………………………………………………..221
9.1.2 內置函數 ……………………………………………………………………………………………………..222
9.2 Python 包索引(PyPI):更多的擴展模組 ………………………………………………………………..222
9.2.1 NumPy …………………………………………………………………………………………………………223
9.2.2 SciPy ……………………………………………………………………………………………………………227
9.2.3 Scikit-Learn ………………………………………………………………………………………………….230
9.2.4 更多的擴展包 ………………………………………………………………………………………………232
9.3 更多的資料結構 ………………………………………………………………………………………………………232
9.3.1 棧 ……………………………………………………………………………………………………………….233
9.3.2 佇列 …………………………………………………………………………………………………………….233
9.3.3 圖 ……………………………………………………………………………………………………………….233
9.3.4 樹 ……………………………………………………………………………………………………………….234
9.4 從這裡啟航 ……………………………………………………………………………………………………………..234
附錄A 下載指南 …………………………………………………………………………………………………………….236
附錄B 練習答案 …………………………………………………………………………………………………………….245
作者介紹 ……………………………………………………………………………………………………………………………247
封面介紹 ……………………………………………………………………………………………………………………………247
xi

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *