內容簡介
Python資料分析必備套件!Pandas資料清理、重塑、過濾、視覺化深度強化式學習
內容簡介
【最齊全!徹底活用Pandas的114技】
想學Pandas,看官方文件就夠了?
對於Python使用者來說,Pandas無疑是資料分析的必備套件。有了Pandas,您可以非常高效地重塑、過濾、清理以及整合大部分類型的資料。的確,Pandas的官方網站提供了不同指令的使用範例。因此有的使用者會說:『不用買書看啦!網路資源這麼豐富,多看看官方文件就好了!』
不過,單單只知道某個指令的運作方式是不足夠的。在實際進行資料分析時,您可能需要結合多個指令來達成目標。這時候,您更需要知道如何活用Pandas。舉例來說,假設您現在面對DataFrame的記憶體用量過大,導致無法順利分析資料的難題時,該怎麼辦呢?
從Pandas的官方文件中,您可以了解轉換欄位型別的方法,也知道如何查詢欄位的浮點數精度。只要結合這兩個方法,您就可以非常輕鬆地降低DataFrame的記憶體用量。遺憾的是,官方文件並不會告訴您這個訣竅,而必須自己花時間來摸索。在摸索的過程中,不可避免地會多走許多彎路。
本書並非單純的Pandas語法參考手冊。作者寫作此書時的目標,是希望讀者們可以從完整的範例中學習,並充分了解活用Pandas技巧的重要性。此外,作者習慣給出同一問題的不同解法,同時比較不同做法的效能。由此一來,讀者日後在實際分析資料時,才能知道哪一種做法是最優解。
正面對決真實資料集!
目前市面上的Pandas書籍,多數是使用亂數產生的假資料集來進行教學。這會導致您在面對真實資料集時,不知該從何下手。有鑒於此,本書作者使用了眾多的真實資料集,讓讀者切身感受資料分析師的工作內容。書中的資料集包含:
•IMDB 5000電影資料集
•Tesla股票資料集
•Kaggle問卷資料集
•鑽石品質資料集
•美國大學資料集
•美國國內航班資料集
•丹佛市的犯罪案件資料集
•阿爾塔年積雪資料集
•美國燃油經濟資料集
…等
最齊全的Pandas技巧教學!
為了讓讀者可以更好的理解,書中每一小節的內容皆搭配完整範例。讀者可以從讀入資料集開始,循序漸進地搞懂資料分析的眉眉角角。全書共傳授了Pandas實戰的114種技巧,保證讀者可以全面掌握其中的精髓。讀者將會學到如何:
•處理資料集中的缺失值
•處理索引爆炸的問題
•組合多個Pandas物件
•在DataFrame中新增和刪除欄位
•取得特定欄位的統計資訊
•轉置DataFrame的運算方向
•減少DataFrame的記憶體用量
•混用位置和標籤來選取資料
•透過Pandas實現SQL的功能
•對多個欄位進行分組及聚合運算
•將資料集重塑成整齊的形式
•過濾包含時間序列資料的欄位
•搭配Matplotlib和Seaborn來視覺化資料
•在Jupyter中進行Pandas程式碼的除錯
…等
如果您不想只是死記硬背Pandas語法,還想學習如何活用其中的技巧,非常歡迎您跟著書中的範例動手試試看,保證可以讓您的資料分析能力更上一層樓!
本書特色
.全面採用最新的Pandas 1.x版本
.最齊全的Pandas教學,傳授114招實用技巧
.附有超過114個範例,還有多到無法細數的資料分析的寶貴經驗,從做中學才更有效
.使用真實世界中的資料集,累積實戰能力
.搭配NumPy、Matplotlib、Seaborn、 Pandarallel、Great Expectations、pytest、Hypothesis 等工具,擴增你的武器庫
.完整說明CSV檔、JSON檔、SQL資料及HTML表格等資料類型的載入方式
.本書由施威銘研究室監修,書中針對原書進行大量補充,並適當添加註解,幫助讀者更好地理解內容
內容簡介
【最齊全!徹底活用Pandas的114技】
想學Pandas,看官方文件就夠了?
對於Python使用者來說,Pandas無疑是資料分析的必備套件。有了Pandas,您可以非常高效地重塑、過濾、清理以及整合大部分類型的資料。的確,Pandas的官方網站提供了不同指令的使用範例。因此有的使用者會說:『不用買書看啦!網路資源這麼豐富,多看看官方文件就好了!』
不過,單單只知道某個指令的運作方式是不足夠的。在實際進行資料分析時,您可能需要結合多個指令來達成目標。這時候,您更需要知道如何活用Pandas。舉例來說,假設您現在面對DataFrame的記憶體用量過大,導致無法順利分析資料的難題時,該怎麼辦呢?
從Pandas的官方文件中,您可以了解轉換欄位型別的方法,也知道如何查詢欄位的浮點數精度。只要結合這兩個方法,您就可以非常輕鬆地降低DataFrame的記憶體用量。遺憾的是,官方文件並不會告訴您這個訣竅,而必須自己花時間來摸索。在摸索的過程中,不可避免地會多走許多彎路。
本書並非單純的Pandas語法參考手冊。作者寫作此書時的目標,是希望讀者們可以從完整的範例中學習,並充分了解活用Pandas技巧的重要性。此外,作者習慣給出同一問題的不同解法,同時比較不同做法的效能。由此一來,讀者日後在實際分析資料時,才能知道哪一種做法是最優解。
正面對決真實資料集!
目前市面上的Pandas書籍,多數是使用亂數產生的假資料集來進行教學。這會導致您在面對真實資料集時,不知該從何下手。有鑒於此,本書作者使用了眾多的真實資料集,讓讀者切身感受資料分析師的工作內容。書中的資料集包含:
•IMDB 5000電影資料集
•Tesla股票資料集
•Kaggle問卷資料集
•鑽石品質資料集
•美國大學資料集
•美國國內航班資料集
•丹佛市的犯罪案件資料集
•阿爾塔年積雪資料集
•美國燃油經濟資料集
…等
最齊全的Pandas技巧教學!
為了讓讀者可以更好的理解,書中每一小節的內容皆搭配完整範例。讀者可以從讀入資料集開始,循序漸進地搞懂資料分析的眉眉角角。全書共傳授了Pandas實戰的114種技巧,保證讀者可以全面掌握其中的精髓。讀者將會學到如何:
•處理資料集中的缺失值
•處理索引爆炸的問題
•組合多個Pandas物件
•在DataFrame中新增和刪除欄位
•取得特定欄位的統計資訊
•轉置DataFrame的運算方向
•減少DataFrame的記憶體用量
•混用位置和標籤來選取資料
•透過Pandas實現SQL的功能
•對多個欄位進行分組及聚合運算
•將資料集重塑成整齊的形式
•過濾包含時間序列資料的欄位
•搭配Matplotlib和Seaborn來視覺化資料
•在Jupyter中進行Pandas程式碼的除錯
…等
如果您不想只是死記硬背Pandas語法,還想學習如何活用其中的技巧,非常歡迎您跟著書中的範例動手試試看,保證可以讓您的資料分析能力更上一層樓!
本書特色
.全面採用最新的Pandas 1.x版本
.最齊全的Pandas教學,傳授114招實用技巧
.附有超過114個範例,還有多到無法細數的資料分析的寶貴經驗,從做中學才更有效
.使用真實世界中的資料集,累積實戰能力
.搭配NumPy、Matplotlib、Seaborn、 Pandarallel、Great Expectations、pytest、Hypothesis 等工具,擴增你的武器庫
.完整說明CSV檔、JSON檔、SQL資料及HTML表格等資料類型的載入方式
.本書由施威銘研究室監修,書中針對原書進行大量補充,並適當添加註解,幫助讀者更好地理解內容
作者簡介
作者簡介
Matt Harrison
Matt Harrison 自 2000 年起就開始使用 Python。他是 MetaSnake 的經營者,專門提供 Python 和資料科學的企業培訓服務。他也是《Machine Learning Pocket Reference》、《Illustrated Guide to Python 3》以及《Learning the Pandas Library》等暢銷書的作者。
Theodore Petrou
Theodore Petrou 是一名資料科學家,也是 Dunder Data(一家深耕於探索性資料分析的專業教育公司)的創辦人。同時,他是 Houston Data Science 的負責人。Houston Data Science 是一個擁有超過 2000 名成員的聚會群組,主要目標是讓當地的資料愛好者一起精進資料科學。在創辦Dunder Data 前,Ted 是 Schlumberger(一家大型石油服務公司)的資料科學家。在那裡,他花費了大部分時間來探索資料。
Matt Harrison
Matt Harrison 自 2000 年起就開始使用 Python。他是 MetaSnake 的經營者,專門提供 Python 和資料科學的企業培訓服務。他也是《Machine Learning Pocket Reference》、《Illustrated Guide to Python 3》以及《Learning the Pandas Library》等暢銷書的作者。
Theodore Petrou
Theodore Petrou 是一名資料科學家,也是 Dunder Data(一家深耕於探索性資料分析的專業教育公司)的創辦人。同時,他是 Houston Data Science 的負責人。Houston Data Science 是一個擁有超過 2000 名成員的聚會群組,主要目標是讓當地的資料愛好者一起精進資料科學。在創辦Dunder Data 前,Ted 是 Schlumberger(一家大型石油服務公司)的資料科學家。在那裡,他花費了大部分時間來探索資料。
內容目錄
目錄
☆第0章:Pandas 套件的基礎
0-1 DataFrame物件
0-2 DataFrame的屬性(attributes)
0-3 Series物件
0-4 Pandas中的資料型別
☆第1章:DataFrame及Series的基本操作
1-1 選取DataFrame的欄位
1-2 呼叫Series的方法(method)
1-3 Series的相關操作
1-4 串連Series的方法
1-5 更改欄位名稱
1-6 新增及刪除欄位
☆第2章:DataFrame的運算技巧
2-1 選取多個DataFrame的欄位
2-2 用方法選取欄位
2-3 對欄位名稱進行排序
2-4 DataFrame的統計方法
2-5 串連DataFrame的方法
2-6 DataFrame的算符運算
2-7 比較缺失值
2-8 轉置DataFrame運算的方向
2.9 案例演練:確定大學校園的多樣性
☆第3章:建立與保存DataFrame
3-1 從無到有建立DataFrame
3-2 存取CSV檔案
3-3 讀取大型的CSV檔案
3-4 使用Excel檔案
3-5 讀取ZIP檔案中的資料
3-6 存取資料庫
3-7 存取JSON格式的資料
3-8 讀取HTML表格
☆第4章:開始資料分析
4-1 制定資料分析的例行程序
4-2 資料字典
4-3 改變資料型別以減少記憶體用量
4-4 資料的排序
4-5 排序後選取每組的最大值和最小值
4-6 用sort_values()選取最大值
4-7 案例演練:計算移動停損單價格
☆第5章:探索式資料分析
5-1 摘要統計資訊
5-2 轉換欄位的資料型別
5-3 資料轉換與缺失值處理
5-4 檢視連續資料的分佈狀況
5-5 檢視不同分類的資料分佈
5-6 比較連續欄位的關聯性
5-7 比較分類欄位的關聯性
5-8 使用Profiling函式庫建立摘要報告
☆第6章:選取資料的子集
6-1 選取一筆或躲避Series資料
6-2 選取DataFrame的列
6-3 同時選取DataFrame的列與欄位
6-4 混用位置與標籤來選取資料
6-5 按標籤的字母順序進行切片
☆第7章:用布林陣列篩選特定的資料
7-1 計算布林陣列的統計資訊
7-2 設定多個布林條件
7-3 以布林陣列來進行過濾
7-4 布林選取 vs 索引選取
7-5 用唯一或已排序的索引標籤來選取資料
7-6 利用Pandas實現SQL中的功能
7-7 使用query方法提高布林選取的可讀性
7-8 使用where()維持Series的大小
7-9 對DataFrame的列進行遮罩
7-10 以布林陣列、位置數字和標籤選擇資料
☆第8章:索引對齊與尋找欄位最大值
8-1 檢驗Index物件
8-2 笛卡兒積
8-3 索引爆炸
8-4 填補缺失值
8-5 從不同的DataFrame增加欄位
8-6 凸顯每一欄位的最大值
8-7 串連方法來實現idxmax()的功能
8-8 尋找最常見的欄位最大值
☆第9章:透過分組來進行聚合、過濾和轉換
9-1 進行簡單的分組及聚合運算
9-2 對多個欄位執行分組及聚合運算
9-3 分組後刪除MultiIndex
9-4 使用自訂的聚合函式來分組
9-5 可接收多個參數的自訂聚合函式
9-6 深入了解groupby物件
9-7 過濾特定的組別
9-8 分組轉換特定欄位的資料
9-9 使用apply()計算加權平均數
9-10 以連續變化的數值進行分組
9-11 案例演練:計算城市之間的航班總數
9-12 案例演練:尋找航班的連續準時記錄
☆第10章:將資料重塑成整齊的形式
10-1 使用stack()整理『欄位名稱為變數值』的資料
10-2 使用melt()整理『欄位名稱為變數值』的資料
10-3 同時堆疊多組變數
10-4 欄位堆疊的反向操作
10-5 在彙總資料後進行反堆疊操作
10-6 使用groupby()模擬pivot_table的功能
10-7 重新命名各軸內的不同層級
10-8 重塑『欄位名稱包含多個變數』的資料
10-9 重塑『多個變數儲存在單一欄位內』的資料
10-10 整理『單一儲存格中包含多個值』的資料
10-11 整理『欄位名稱及欄位值包含變數』的資料
☆第11章:時間序列分析
11-1 了解Python和Pandas日期工具的差別
11-2 對時間序列切片
11-3 過濾包含時間資料的欄位
11-4 僅適用於DatetimeIndex的方法
11-5 依據時間區段重新分組
11-6 分組彙總同一時間單位的多個欄位
11-7 案例演練:以『星期幾』來統計犯罪率
11-8 使用匿名函式來分組
11-9 使用Timestamp與另一欄位來分組
☆第12章:利用Matplotlib、Pandas和Seaborn進行資料視覺化
12-1 Matplotlib入門
12-2 Matplotlib的物件導向指南
12-3 用Matplotlib視覺化資料
12-4 使用Pandas繪製基本圖形
12-5 視覺化航班資料集
12-6 使用堆疊面積圖找出趨勢
12-7 了解Seaborn和Pandas之間的區別
12-8 使用Seaborn進行多變量分析
Bonus A:組合多個DataFrame或Series
A-1 在DataFrame上添加新的列
A-2 連接多個DataFrame
A-3 concat()、join()和merge()的區別
A-4 連接到SQL資料庫
Bonus B:案例演練-使用Seaborn發現辛普森悖論
Bonus C:Pandas的效能、除錯與測試
C-1 轉換資料
C-2 apply()方法的效能
C-3 提高apply()的效能
C-4 快速檢視程式碼的技巧
C-5 在Jupyter中除錯
C-6 以Great Expectations來管理資料完整性
C-7 使用pytest來測試Pandas
☆第0章:Pandas 套件的基礎
0-1 DataFrame物件
0-2 DataFrame的屬性(attributes)
0-3 Series物件
0-4 Pandas中的資料型別
☆第1章:DataFrame及Series的基本操作
1-1 選取DataFrame的欄位
1-2 呼叫Series的方法(method)
1-3 Series的相關操作
1-4 串連Series的方法
1-5 更改欄位名稱
1-6 新增及刪除欄位
☆第2章:DataFrame的運算技巧
2-1 選取多個DataFrame的欄位
2-2 用方法選取欄位
2-3 對欄位名稱進行排序
2-4 DataFrame的統計方法
2-5 串連DataFrame的方法
2-6 DataFrame的算符運算
2-7 比較缺失值
2-8 轉置DataFrame運算的方向
2.9 案例演練:確定大學校園的多樣性
☆第3章:建立與保存DataFrame
3-1 從無到有建立DataFrame
3-2 存取CSV檔案
3-3 讀取大型的CSV檔案
3-4 使用Excel檔案
3-5 讀取ZIP檔案中的資料
3-6 存取資料庫
3-7 存取JSON格式的資料
3-8 讀取HTML表格
☆第4章:開始資料分析
4-1 制定資料分析的例行程序
4-2 資料字典
4-3 改變資料型別以減少記憶體用量
4-4 資料的排序
4-5 排序後選取每組的最大值和最小值
4-6 用sort_values()選取最大值
4-7 案例演練:計算移動停損單價格
☆第5章:探索式資料分析
5-1 摘要統計資訊
5-2 轉換欄位的資料型別
5-3 資料轉換與缺失值處理
5-4 檢視連續資料的分佈狀況
5-5 檢視不同分類的資料分佈
5-6 比較連續欄位的關聯性
5-7 比較分類欄位的關聯性
5-8 使用Profiling函式庫建立摘要報告
☆第6章:選取資料的子集
6-1 選取一筆或躲避Series資料
6-2 選取DataFrame的列
6-3 同時選取DataFrame的列與欄位
6-4 混用位置與標籤來選取資料
6-5 按標籤的字母順序進行切片
☆第7章:用布林陣列篩選特定的資料
7-1 計算布林陣列的統計資訊
7-2 設定多個布林條件
7-3 以布林陣列來進行過濾
7-4 布林選取 vs 索引選取
7-5 用唯一或已排序的索引標籤來選取資料
7-6 利用Pandas實現SQL中的功能
7-7 使用query方法提高布林選取的可讀性
7-8 使用where()維持Series的大小
7-9 對DataFrame的列進行遮罩
7-10 以布林陣列、位置數字和標籤選擇資料
☆第8章:索引對齊與尋找欄位最大值
8-1 檢驗Index物件
8-2 笛卡兒積
8-3 索引爆炸
8-4 填補缺失值
8-5 從不同的DataFrame增加欄位
8-6 凸顯每一欄位的最大值
8-7 串連方法來實現idxmax()的功能
8-8 尋找最常見的欄位最大值
☆第9章:透過分組來進行聚合、過濾和轉換
9-1 進行簡單的分組及聚合運算
9-2 對多個欄位執行分組及聚合運算
9-3 分組後刪除MultiIndex
9-4 使用自訂的聚合函式來分組
9-5 可接收多個參數的自訂聚合函式
9-6 深入了解groupby物件
9-7 過濾特定的組別
9-8 分組轉換特定欄位的資料
9-9 使用apply()計算加權平均數
9-10 以連續變化的數值進行分組
9-11 案例演練:計算城市之間的航班總數
9-12 案例演練:尋找航班的連續準時記錄
☆第10章:將資料重塑成整齊的形式
10-1 使用stack()整理『欄位名稱為變數值』的資料
10-2 使用melt()整理『欄位名稱為變數值』的資料
10-3 同時堆疊多組變數
10-4 欄位堆疊的反向操作
10-5 在彙總資料後進行反堆疊操作
10-6 使用groupby()模擬pivot_table的功能
10-7 重新命名各軸內的不同層級
10-8 重塑『欄位名稱包含多個變數』的資料
10-9 重塑『多個變數儲存在單一欄位內』的資料
10-10 整理『單一儲存格中包含多個值』的資料
10-11 整理『欄位名稱及欄位值包含變數』的資料
☆第11章:時間序列分析
11-1 了解Python和Pandas日期工具的差別
11-2 對時間序列切片
11-3 過濾包含時間資料的欄位
11-4 僅適用於DatetimeIndex的方法
11-5 依據時間區段重新分組
11-6 分組彙總同一時間單位的多個欄位
11-7 案例演練:以『星期幾』來統計犯罪率
11-8 使用匿名函式來分組
11-9 使用Timestamp與另一欄位來分組
☆第12章:利用Matplotlib、Pandas和Seaborn進行資料視覺化
12-1 Matplotlib入門
12-2 Matplotlib的物件導向指南
12-3 用Matplotlib視覺化資料
12-4 使用Pandas繪製基本圖形
12-5 視覺化航班資料集
12-6 使用堆疊面積圖找出趨勢
12-7 了解Seaborn和Pandas之間的區別
12-8 使用Seaborn進行多變量分析
Bonus A:組合多個DataFrame或Series
A-1 在DataFrame上添加新的列
A-2 連接多個DataFrame
A-3 concat()、join()和merge()的區別
A-4 連接到SQL資料庫
Bonus B:案例演練-使用Seaborn發現辛普森悖論
Bonus C:Pandas的效能、除錯與測試
C-1 轉換資料
C-2 apply()方法的效能
C-3 提高apply()的效能
C-4 快速檢視程式碼的技巧
C-5 在Jupyter中除錯
C-6 以Great Expectations來管理資料完整性
C-7 使用pytest來測試Pandas