Pandas實戰 The Pandas Workshop: A comprehensive guide to using Python for data analysis with real-world case studies

[美]布萊恩·貝特曼 等著 熊愛華 譯

  • Pandas實戰-preview-1
  • Pandas實戰-preview-2
  • Pandas實戰-preview-3
Pandas實戰-preview-1

相關主題

商品描述

《Pandas實戰》詳細闡述了與Pandas數據分析相關的基本知識,主要包括數據結構、數據的輸入和輸出、Pandas數據類型、數據選擇、數據探索和轉換、理解數據可視化、數據建模、在Pandas中使用時間、探索時間序列、Pandas數據處理案例研究等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。

目錄大綱

目    錄

第1篇  Pandas基礎知識

第1章  初識Pandas 3

  1.1  Pandas世界介紹 3

  1.2  探索Pandas的歷史和演變 4

  1.3  Pandas的組件和應用 4

  1.4  瞭解Pandas的基本概念 5

  1.4.1  Series對象 7

  1.4.2  DataFrame對象 8

  1.4.3  使用本地文件 11

  1.4.4  讀取CSV文件 12

  1.4.5  顯示數據快照 12

  1.4.6  將數據寫入文件中 13

  1.4.7  練習1.1—使用Pandas讀取和寫入數據 13

  1.4.8  Pandas中的數據類型 15

  1.4.9  數據選擇 18

  1.4.10  數據轉換 20

  1.4.11  數據可視化 20

  1.4.12  時間序列數據 22

  1.4.13  代碼優化 24

  1.4.14  實用工具函數 25

  1.4.15  練習1.2—使用Pandas進行基本數值運算 29

  1.4.16  數據建模 36

  1.4.17  練習1.3—比較兩個DataFrame的數據 37

  1.5  作業1.1—比較兩家商店的銷售數據 44

  1.6  小結 45

第2章  數據結構 47

  2.1  數據結構簡介 47

  2.2  對數據結構的需求 48

  2.2.1  數據結構 49

  2.2.2  在Pandas中創建DataFrame 50

  2.2.3  練習2.1—創建DataFrame 56

  2.3  瞭解索引和列 58

  2.3.1  練習2.2—讀取DataFrame並進行索引操作 65

  2.3.2  使用列 69

  2.4  使用Pandas Series 71

  2.4.1  Series索引 72

  2.4.2  練習2.3—從Series到DataFrame 76

  2.4.3  使用時間作為索引 80

  2.4.4  練習2.4—DataFrame索引 83

  2.5  作業2.1—使用Pandas數據結構 86

  2.6  小結 87

第3章  數據的輸入和輸出 89

  3.1  數據世界 89

  3.2  探索數據源 93

  3.2.1  文本文件和二進制文件 93

  3.2.2  在線數據源 95

  3.2.3  練習3.1—從網頁中讀取數據 97

  3.3  基本格式 99

  3.3.1  文本數據 99

  3.3.2  練習3.2—文本字符編碼和數據分隔符 109

  3.3.3  二進制數據 111

  3.3.4  數據庫—SQL數據 112

  3.3.5  sqlite3 113

  3.4  其他文本格式 114

  3.4.1  使用JSON 115

  3.4.2  使用HTML/XML 118

  3.4.3  使用XML數據 120

  3.4.4  使用Excel 122

  3.4.5  SAS數據 125

  3.4.6  SPSS數據 126

  3.4.7  Stata數據 127

  3.4.8  HDF5數據 128

  3.5  操作SQL數據 129

  3.5.1  使用Pandas操作數據庫 129

  3.5.2  練習3.3—使用SQL 134

  3.5.3  為項目選擇格式 138

  3.6  作業3.1—使用SQL數據進行Pandas分析 139

  3.7  小結 140

第4章  Pandas數據類型 141

  4.1  Pandas dtypes簡介 141

  4.1.1  瞭解基礎數據類型 141

  4.1.2  從一種類型轉換為另一種類型 145

  4.1.3  練習4.1—基礎數據類型和轉換 149

  4.2  缺失數據類型 156

  4.2.1  缺失值的表示 156

  4.2.2  可為空類型 157

  4.2.3  練習4.2—將缺失數據轉換為不可為空的數據類型 159

  4.3  作業4.1—通過轉換為適當的數據類型來優化內存使用 163

  4.4  按數據類型創建子集 164

  4.4.1  字符串方法 164

  4.4.2  使用category類型 167

  4.4.3  使用dtype = datetime64[ns] 169

  4.4.4  使用dtype = timedelta64[ns] 174

  4.4.5  練習4.3—使用字符串方法處理文本數據 175

  4.4.6  按數據的dtype在DataFrame中選擇數據 178

  4.5  小結 181

第2篇  處 理 數 據

第5章  數據選擇—DataFrame 185

  5.1  DataFrame簡介 185

  5.1.1  Pandas DataFrame操作的關聯性 185

  5.1.2  對數據選擇方法的需求 186

  5.2  Pandas DataFrame中的數據選擇 187

  5.2.1  索引及其形式 189

  5.2.2  練習5.1—識別數據集中的行和列索引 191

  5.2.3  保存索引或列 193

  5.2.4  切片和索引方法 194

  5.2.5  布爾索引 203

  5.2.6  練習5.2—創建行和列的子集 204

  5.2.7  使用標簽作為索引和Pandas多級索引 206

  5.2.8  從列中創建多級索引 211

  5.3  作業5.1—從列中創建多級索引 214

  5.4  括號和點表示法 216

  5.4.1  括號表示法 216

  5.4.2  點表示法 216

  5.4.3  選擇整列 217

  5.4.4  選擇一個行範圍 219

  5.4.5  練習5.3—整數行號與標簽 220

  5.4.6  使用擴展索引 223

  5.4.7  類型異常 226

  5.5  使用括號或點表示法更改DataFrame值 228

  5.5.1  使用括號表示法輕松修改數據 228

  5.5.2  鏈式操作可能產生的問題及其解決方案 229

  5.5.3  練習5.4—使用括號和點表示法選擇數據 232

  5.6  小結 236

第6章  數據選擇—Series 237

  6.1  Pandas Series介紹 237

  6.2  Series索引 237

  6.2.1  Pandas Series中的數據選擇 239

  6.2.2  括號表示法、點表示法、Series.loc和Series.iloc 239

  6.2.3  練習6.1—基本Series數據選擇 243

  6.3  從DataFrame中創建Series或從Series中獲取DataFrame 246

  6.3.1  從DataFrame中創建Series 246

  6.3.2  從Series中獲取DataFrame 248

  6.3.3  練習6.2—使用Series索引選擇值 251

  6.4  作業6.1—Series數據選擇 255

  6.5  瞭解基礎Python和Pandas數據選擇之間的差異 256

  6.5.1  列表與Series訪問 256

  6.5.2  DataFrame與字典訪問 257

  6.6  作業6.2—DataFrame數據選擇 259

  6.7  小結 261

第7章  數據探索和轉換 263

  7.1  數據轉換簡介 263

  7.2  處理混亂的數據 263

  7.2.1  處理沒有列標題的數據 264

  7.2.2  一列中的多個值 269

  7.2.3  行和列中的重復觀察值 274

  7.2.4  練習7.1—處理格式混亂的地址 276

  7.2.5  多個變量被存儲在一列中 280

  7.2.6  具有相同結構的多個DataFrame 284

  7.2.7  練習7.2—按人口統計信息存儲銷售數據 287

  7.3  處理缺失數據 293

  7.3.1  關於缺失數據 293

  7.3.2  缺失數據的處理策略 294

  7.3.3  應用刪除策略 294

  7.3.4  應用插補策略 296

  7.4  匯總數據 299

  7.4.1  分組和聚合 299

  7.4.2  探索數據透視表 304

  7.5  作業7.1—使用數據透視表進行數據分析 308

  7.6  小結 310

第8章  理解數據可視化 311

  8.1  數據可視化簡介 311

  8.2  瞭解Pandas可視化的基礎知識 312

  8.2.1  使用plot()函數繪圖 312

  8.2.2  練習8.1—為泰坦尼克號數據集構建直方圖 321

  8.3  探索Matplotlib 324

  8.4  可視化不同類型的數據 330

  8.4.1  可視化數值數據 331

  8.4.2  可視化分類數據 337

  8.4.3  可視化統計數據 342

  8.4.4  練習8.2—泰坦尼克號數據集的箱線圖 344

  8.4.5  可視化多個數據圖 348

  8.5  作業8.1—使用數據可視化進行探索性數據分析 350

  8.6  小結 351

第3篇  數 據 建 模

第9章  數據建模—預處理 355

  9.1  數據建模簡介 355

  9.2  探索因變量和自變量 356

  9.2.1  拆分訓練集、驗證集和測試集 366

  9.2.2  練習9.1—創建訓練、驗證和測試數據 374

  9.2.3  避免信息泄露 379

  9.2.4  完整的模型驗證 380

  9.3  瞭解數據縮放和歸一化 381

  9.3.1  縮放數據的不同方法 381

  9.3.2  自己縮放數據 382

  9.3.3  最小值/最大值縮放 383

  9.3.4  最小值/最大值縮放用例—神經網絡 384

  9.3.5  標準化—解決差異問題 386

  9.3.6  轉換回真實單位 390

  9.3.7  練習9.2—縮放和歸一化數據 390

  9.4  作業9.1—數據拆分、縮放和建模 396

  9.5  小結 397

第10章  數據建模—有關建模的基礎知識 399

  10.1  數據建模簡介 399

  10.2  瞭解建模基礎知識 400

  10.2.1  建模工具 400

  10.2.2  Pandas建模工具 400

  10.2.3  其他重要的Pandas方法 410

  10.2.4  窗口函數 411

  10.2.5  窗口方法 414

  10.2.6  平滑數據 417

  10.3  預測時間序列的未來值 427

  10.3.1  以原始日期為中心的平滑窗口 427

  10.3.2  使用加權窗口平滑數據 430

  10.3.3  練習10.1—平滑數據以發現模式 432

  10.4  作業10.1—歸一化和平滑數據 436

  10.5  小結 437

第11章  數據建模—回歸建模 439

  11.1  回歸建模簡介 439

  11.2  探索回歸建模 440

  11.2.1  使用線性模型 446

  11.2.2  練習11.1—線性回歸 450

  11.2.3  非線性模型 455

  11.3  模型診斷 455

  11.3.1  比較預測值和實際值 455

  11.3.2  使用Q-Q圖 457

  11.3.3  練習11.2—多元回歸和非線性模型 462

  11.4  作業11.1—實現多元回歸 472

  11.5  小結 483

第4篇  其他Pandas用例

第12章  在Pandas中使用時間 487

  12.1  時間序列簡介 487

  12.2  Pandas datetime 488

  12.2.1  datetime對象的屬性 489

  12.2.2  練習12.1—使用datetime 491

  12.2.3  創建和操作日期時間對象/時間序列 497

  12.2.4  Pandas中的時間周期 500

  12.2.5  Pandas時間感知對象中的信息 501

  12.2.6  練習12.2—日期時間的數學 503

  12.2.7  時間戳格式 507

  12.2.8  日期時間本地化 509

  12.2.9  時間戳限制 509

  12.3  作業12.1—瞭解電力使用情況 510

  12.4  日期時間數學運算 514

  12.4.1  日期範圍 514

  12.4.2  時間差值、偏移量和差異 516

  12.4.3  日期偏移 518

  12.4.4  練習12.3—時間差值和日期偏移 521

  12.5  小結 525

第13章  探索時間序列 527

  13.1  使用時間序列作為索引 527

  13.1.1  時間序列周期/頻率 527

  13.1.2  移動、滯後和轉換頻率 529

  13.2  按時間重採樣、分組和聚合 530

  13.2.1  使用重採樣方法 531

  13.2.2  練習13.1—聚合和重採樣 535

  13.2.3  使用滾動方法的窗口操作 539

  13.3  作業13.1—創建時間序列模型 545

  13.4  小結 550

第14章  Pandas數據處理案例研究 551

  14.1  案例研究和數據集簡介 551

  14.2  預處理步驟回顧 552

  14.2.1 預處理德國氣象數據 555

  14.2.2  練習14.1—預處理德國氣象數據 556

  14.2.3  練習14.2—合並DataFrame和重命名變量 560

  14.2.4  練習14.3—插補數據並回答問題 563

  14.2.5  練習14.4—使用數據可視化來回答問題 566

  14.2.6  練習14.5—使用數據可視化來回答問題 573

  14.2.7  練習14.6—分析公交車軌跡數據 576

  14.3  作業14.1—分析空氣質量數據 584

  14.4  小結 585

附錄A  作業答案 587

  作業1.1答案 587

  作業2.1答案 590

  作業3.1答案 592

  作業4.1答案 594

  作業5.1答案 599

  作業6.1答案 601

  作業6.2答案 604

  作業7.1答案 607

  作業8.1答案 610

  作業9.1答案 616

  作業10.1答案 619

  作業11.1答案 626

  作業12.1答案 641

  作業13.1答案 648

  作業14.1答案 654

 

·XVI·

Pandas實戰

  

·XVII·

目    錄