Python數據預處理 Hands-On Data Preprocessing in Python: Learn how to effectively prepare data for successful data analytics

[印]羅伊·賈法里 著 陳凱 譯

  • Python數據預處理-preview-1
  • Python數據預處理-preview-2
  • Python數據預處理-preview-3
Python數據預處理-preview-1

買這商品的人也買了...

商品描述

《Python數據預處理》詳細闡述了與Python數據預處理相關的基本解決方案,主要包括NumPy和Pandas簡介、Matplotlib簡介、數據、數據庫、數據可視化、預測、分類、聚類分析、數據清洗、數據融合與數據集成、數據歸約、數據轉換等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。

目錄大綱

目    錄

第1篇  技 術 基 礎

第1章  NumPy和Pandas簡介 3

1.1  技術要求 3

1.2  Jupyter Notebook概述 4

1.3  通過電腦編程進行數據分析的實質含義 6

1.4  NumPy基本函數概述 6

1.4.1  np.arange()函數 8

1.4.2  np.zeros()和np.ones()函數 8

1.4.3  示例—使用占位符來容納分析 9

1.4.4  np.linspace()函數 10

1.4.5  示例—使用np.linspace()求解 11

1.5  Pandas概述 12

1.6  Pandas數據訪問 15

1.6.1  Pandas DataFrame訪問 15

1.6.2  訪問DataFrame行 15

1.6.3  訪問DataFrame列 16

1.6.4  訪問DataFrame值 17

1.6.5  訪問Pandas Series 17

1.7  切片 18

1.7.1  對NumPy數組進行切片 18

1.7.2  對Pandas DataFrame進行切片 20

1.7.3  切片的實用示例 20

1.8  用於過濾DataFrame的布爾掩碼 22

1.8.1  使用布爾掩碼的分析示例1 23

1.8.2  使用布爾掩碼的分析示例2 24

1.9  用於探索DataFrame的Pandas函數 24

1.9.1  瞭解數據集的結構 25

1.9.2  使用.shape屬性 25

1.9.3  使用.columns屬性 25

1.9.4  使用.info()函數 26

1.9.5  瞭解數據集的值 26

1.9.6  使用.describe()函數 26

1.9.7  用於可視化數值列的直方圖和箱線圖 27

1.9.8  使用.unique()函數 28

1.9.9  使用.value_counts()函數 28

1.9.10  用於可視化數值列的條形圖 29

1.10  應用Pandas函數 29

1.10.1  將函數應用於Series 30

1.10.2  應用函數—分析示例1 30

1.10.3  應用Lambda函數 31

1.10.4  對DataFrame應用函數 31

1.10.5  應用函數—分析示例2 32

1.10.6  Pandas groupby函數 33

1.10.7  使用groupby的分析示例 34

1.10.8  Pandas多級索引 35

1.10.9  使用.unstack()函數 36

1.10.10  使用.stack()函數 38

1.10.11  多級訪問 39

1.10.12  Pandas .pivot()和.melt()函數 40

1.11  小結 43

1.12  練習 43

第2章  Matplotlib簡介 47

2.1  技術要求 47

2.2  在Matplotlib中繪圖 48

2.2.1  使用直方圖或箱線圖可視化數值特徵 48

2.2.2  使用折線圖觀察數據趨勢 49

2.2.3  使用散點圖關聯兩個數值屬性 50

2.3  修改繪圖的可視化效果 51

2.3.1  將標題添加到可視化對象並將標簽添加到軸 52

2.3.2  添加圖例 53

2.3.3  修改刻度 53

2.3.4  修改標記 55

2.4  繪制子圖 56

2.5  調整並保存結果 58

2.5.1  調整大小 58

2.5.2  保存 58

2.6  Matplotilb輔助進行數據預處理的示例 58

2.7  小結 59

2.8  練習 60

第3章  數據 61

3.1  技術要求 61

3.2  數據的定義 61

3.2.1  HLCU的意義 62

3.2.2  DIKW金字塔 63

3.2.3  機器學習和人工智能的DIKW更新 64

3.2.4  數據分析的DIKW更新 65

3.2.5  用於數據分析的數據預處理與用於機器學習的數據預處理 67

3.2.6  大數據的3個V 67

3.2.7  3個V對數據預處理的重要性 68

3.3  最通用的數據結構—表 68

3.3.1  數據對象 69

3.3.2  強調數據對象的重要性 69

3.3.3  數據特性 70

3.4  數據值的類型 70

3.4.1  從分析的角度看數據類型 70

3.4.2  標稱特性 71

3.4.3  序數特性 71

3.4.4  區間標度特性 72

3.4.5  比率標度特性 74

3.4.6  二元特性 74

3.4.7  理解特性類型的重要性 74

3.4.8  從編程的角度看數據類型 75

3.5  信息與模式 75

3.5.1  理解“信息”這個詞的日常用法 76

3.5.2  “信息”一詞的統計用途 76

3.5.3  分類特性的統計信息 77

3.5.4  數字特性的統計信息 77

3.5.5  數據冗餘—呈現相似信息的特性 78

3.5.6  通過相關系數調查數據冗餘情況 78

3.5.7  “模式”一詞的統計意義 79

3.5.8  查找和使用模式的示例 79

3.6  小結 82

3.7  練習 82

3.8  參考資料 85

第4章  數據庫 87

4.1  技術要求 87

4.2  數據庫的定義 87

4.2.1  從數據庫到數據集 87

4.2.2  理解數據庫和數據集之間的區別 88

4.3  數據庫類型 89

4.3.1  數據庫的差異化元素 90

4.3.2  數據結構化水平 90

4.3.3  存儲位置 92

4.3.4  權限 92

4.3.5  關系數據庫 92

4.3.6  非結構化數據庫 92

4.3.7  一個需要結合結構化和非結構化數據庫的實際示例 93

4.3.8  分佈式數據庫 93

4.3.9  區塊鏈 94

4.4  連接到數據庫並從中提取數據 94

4.4.1  直接連接 95

4.4.2  網頁連接 96

4.4.3  API連接 97

4.4.4  使用API連接和提取數據的示例 97

4.4.5  後續處理 99

4.4.6  綜合操作 100

4.4.7  請求連接 101

4.4.8  公開共享 101

4.5  小結 101

4.6  練習 102

第2篇  分 析 目 標

第5章  數據可視化 107

5.1  技術要求 107

5.2  總結數據的總體 107

5.2.1  總結數值特性的示例 108

5.2.2  總結分類特性的示例 109

5.3  比較數據的總體 111

5.3.1  使用箱線圖比較總體的示例 111

5.3.2  使用直方圖比較總體的示例 112

5.3.3  使用條形圖比較總體的示例 114

5.3.4  解決問題的第一種方法 114

5.3.5  解決問題的第二種方法 115

5.3.6  解決問題的第三種方法 115

5.3.7  解決問題的第四種方法 116

5.3.8  解決問題的第五種方法 117

5.3.9  解決問題的第六種方法 117

5.4  研究兩個特性之間的關系 118

5.4.1  可視化兩個數值特性之間的關系 118

5.4.2  使用散點圖研究數值特性之間關系的示例 118

5.4.3  可視化兩個分類特性之間的關系 120

5.4.4  使用列聯表檢查兩個二元分類特性之間關系的示例 121

5.4.5  使用列聯表檢查兩個非二元分類特性之間關系的示例 122

5.4.6  可視化數值特性和分類特性之間的關系 123

5.4.7  檢查分類特性和數值特性之間關系的示例 123

5.4.8  檢查分類特性和數值特性之間關系的另一個示例 125

5.5  添加可視化維度 127

5.5.1  五維散點圖示例 127

5.5.2  第四個維度 130

5.5.3  第五個維度 131

5.6  顯示和比較趨勢 133

5.6.1  時間序列數據和折線圖 133

5.6.2  可視化和比較趨勢的示例 134

5.7  小結 136

5.8  練習 137

第6章  預測 141

6.1  技術要求 141

6.2  預測模型 141

6.2.1  Forecast 142

6.2.2  使用Forecast來預測未來的示例 142

6.2.3  回歸分析 143

6.2.4  設計回歸分析以預測未來值的示例 144

6.3  線性回歸 145

6.3.1  應用線性回歸方法的示例 145

6.3.2  使用經過訓練的回歸公式進行預測 148

6.4  MLP 150

6.4.1  MLP的工作原理 151

6.4.2  反向傳播 152

6.4.3  應用MLP進行回歸分析的示例 152

6.4.4  MLP每次運行都會獲得不同的預測結果 153

6.4.5  MLP算法無法收斂 153

6.5  小結 154

6.6  練習 154

第7章  分類 157

7.1  技術要求 157

7.2  分類模型 157

7.2.1  分類模型的設計示例 158

7.2.2  分類算法 159

7.3  KNN 159

7.3.1  使用KNN進行分類的示例 159

7.3.2  數據歸一化 161

7.3.3  應用KNN算法 163

7.4  決策樹 165

7.4.1  使用決策樹進行分類的示例 165

7.4.2  預測結果比較 166

7.5  小結 167

7.6  練習 167

第8章  聚類分析 171

8.1  技術要求 171

8.2  聚類模型 171

8.2.1  使用二維數據集的聚類示例 172

8.2.2  使用三維數據集的聚類示例 175

8.3  k-means算法 176

8.3.1  使用k-means對二維數據集進行聚類 178

8.3.2  使用k-means對多於二維的數據集進行聚類 182

8.3.3  質心分析 183

8.4  小結 185

8.5  練習 185

第3篇  預  處  理

第9章  數據清洗1級—清洗表 189

9.1  技術要求 189

9.2  數據清洗的工具和目標 189

9.2.1  數據分析目標 190

9.2.2  數據分析工具 190

9.3  數據清洗級別 190

9.3.1  數據清洗1級—清洗表 191

9.3.2  數據清洗2級—重組和重製表 191

9.3.3  數據清洗3級—評估和糾正值 191

9.3.4  將分析的目標和工具映射到數據清洗級別 191

9.4  數據清洗1級—清洗表的示例 193

9.4.1  示例1—不明智的數據收集 193

9.4.2  示例2—重新索引 196

9.4.3  示例3—直觀但很長的列標題 198

9.5  小結 200

9.6  練習 200

第10章  數據清洗2級—解包、重組和重製表 203

10.1  技術要求 203

10.2  示例1—解包數據並重新構建表 203

10.2.1  解包FileName 204

10.2.2  解包Content 207

10.2.3  重制一個新表以進行可視化 208

10.2.4  可視化繪圖 211

10.3  示例2—重組表 211

10.4  示例3—執行1級和2級數據清洗 214

10.4.1  執行1級清洗 216

10.4.2  執行2級清洗 217

10.4.3  填充DA 218

10.4.4  填充IA1 219

10.4.5  填充IA2 220

10.4.6  填充IA3 222

10.4.7  進行分析—使用線性回歸創建預測模型 223

10.5  小結 224

10.6  練習 224

第11章  數據清洗3級—處理缺失值、異常值和誤差 227

11.1  技術要求 227

11.2  缺失值 228

11.2.1  檢測缺失值 229

11.2.2  檢測缺失值的示例 229

11.2.3  缺失值的原因 231

11.2.4  缺失值的類型 232

11.2.5  缺失值的診斷 232

11.2.6  診斷NO2_LOCATION_A中的缺失值 233

11.2.7  根據溫度診斷缺失值 233

11.2.8  根據所有數值特性診斷缺失值 236

11.2.9  根據周工作日診斷缺失值 237

11.2.10  根據所有分類特性診斷缺失值 240

11.2.11  診斷NO2_LOCATION_B中的缺失值 241

11.2.12  診斷NO2_LOCATION_C中的缺失值 244

11.3  處理缺失值 246

11.3.1  第一種方法—保持缺失值不變 246

11.3.2  第二種方法—刪除具有缺失值的數據對象 247

11.3.3  第三種方法—刪除具有缺失值的特性 247

11.3.4  第四種方法—估計和填補缺失值 248

11.3.5  選擇正確的方法處理缺失值 248

11.3.6  處理缺失值示例1 250

11.3.7  處理缺失值示例2 251

11.3.8  處理缺失值示例3 252

11.3.9  處理缺失值示例4 253

11.3.10  處理缺失值示例5 254

11.4  異常值 258

11.4.1  檢測異常值 258

11.4.2  單變量異常值檢測 258

11.4.3  單個數值特性異常值檢測示例 259

11.4.4  單個分類特性異常值檢測示例 262

11.4.5  雙變量異常值檢測 262

11.4.6  跨越兩個數值特性檢測異常值的示例 262

11.4.7  跨越兩個分類特性檢測異常值的示例 263

11.4.8  跨越數值-分類兩個特性檢測異常值的示例 264

11.4.9  多變量異常值檢測 266

11.4.10  使用聚類分析跨越4個特性檢測異常值的示例 266

11.4.11  時間序列異常值檢測 267

11.5  處理異常值 268

11.5.1  第一種方法—保持原樣 268

11.5.2  第二種方法—替換為上限或下限 269

11.5.3  第三種方法—執行對數變換 269

11.5.4  第四種方法—刪除具有異常值的數據對象 270

11.5.5  選擇處理異常值的恰當方法 270

11.5.6  處理異常值示例1 270

11.5.7  處理異常值示例2 272

11.5.8  處理異常值示例3 273

11.5.9  處理異常值示例4 281

11.5.10  處理異常值示例5 282

11.6  誤差 286

11.6.1  誤差類型 286

11.6.2  處理誤差 287

11.6.3  檢測系統誤差 287

11.6.4  系統誤差和正確異常值的示例 287

11.7  小結 291

11.8  練習 291

第12章  數據融合與數據集成 297

12.1  技術要求 297

12.2  關於數據融合和數據集成 297

12.2.1  數據融合與集成 298

12.2.2  數據集成示例 299

12.2.3  數據融合示例 299

12.2.4  數據集成方向 300

12.2.5  通過添加特性進行數據集成的示例 301

12.2.6  通過添加數據對象進行數據集成的示例 301

12.3  數據融合和集成方面的常見挑戰 301

12.3.1  挑戰1—實體識別 302

12.3.2  挑戰2—不明智的數據收集 302

12.3.3  挑戰3—索引格式不匹配 302

12.3.4  挑戰4—聚合不匹配 304

12.3.5  挑戰5—重復數據對象 304

12.3.6  挑戰6—數據冗餘 305

12.4  數據集成示例1(挑戰3和4) 306

12.5  數據集成示例2(挑戰2和3) 309

12.6  數據集成示例3(挑戰1、3、5和6) 314

12.6.1  檢查重復的數據對象 315

12.6.2  檢查billboard_df中的重復項 315

12.6.3  檢查songattributes_df中的重復項 316

12.6.4  檢查artist_df中的重復項 318

12.6.5  設計數據集成結果的結構 319

12.6.6  從billboard_df填充songIntegrate_df 322

12.6.7  從songAttribute_df填充songIntegrate_df 324

12.6.8  從artist_df填充songIntegrate_df 328

12.6.9  檢查數據冗餘 331

12.6.10  檢查數值特性之間的數據冗餘 331

12.6.11  檢查數值和分類特性之間的數據冗餘 332

12.6.12  分析 333

12.6.13  通過數據可視化方法尋找熱門歌曲的單變量模式 334

12.6.14  通過決策樹方法尋找熱門歌曲的多變量模式 335

12.6.15  示例總結 336

12.7  小結 337

12.8  練習 337

第13章  數據歸約 341

13.1  技術要求 341

13.2  數據歸約和數據冗餘之間的區別 341

13.3  數據歸約的目標 342

13.4  數據歸約的類型 343

13.5  執行數量上的數據歸約 344

13.5.1  隨機抽樣 344

13.5.2  示例—隨機抽樣以加快調優速度 344

13.5.3  分層抽樣 348

13.5.4  示例—不平衡數據集的分層抽樣 349

13.5.5  隨機過抽樣/欠抽樣 350

13.6  執行維度上的數據歸約 353

13.6.1  線性回歸降維方法 354

13.6.2  示例—使用線性回歸的降維 354

13.6.3  決策樹降維方法 358

13.6.4  隨機森林降維方法 359

13.6.5  示例—使用隨機森林進行降維 359

13.6.6  暴力計算降維 360

13.6.7  示例—為分類算法尋找自變量特性的最佳子集 361

13.6.8  主成分分析 364

13.6.9  示例—玩具數據集 364

13.6.10  示例—非參數降維 367

13.6.11  函數型數據分析 374

13.6.12  示例—參數化降維 375

13.6.13  用於FDA的函數 381

13.6.14  指數函數 382

13.6.15  傅里葉函數 383

13.6.16  正弦函數 384

13.6.17  高斯函數 385

13.6.18  關於FDA的說明 388

13.7  小結 388

13.8  練習 389

第14章  數據轉換 393

14.1  技術要求 393

14.2  數據轉換和按摩的原因 393

14.2.1  數據轉換的意義 394

14.2.2  數據轉換與數據按摩的區別 394

14.3  歸一化和標準化 395

14.4  二進制編碼、排序轉換和離散化 397

14.4.1  示例1—標稱特性的二進制編碼 399

14.4.2  示例2—序數特性的二進制編碼或排序轉換 402

14.4.3  示例3—數值特性的離散化 404

14.4.4  瞭解離散化的類型 406

14.4.5  離散化—分界點的數量 408

14.4.6  數值和分類的來回轉換 408

14.5  特性構造 409

14.5.1  瞭解與特性相關的背景知識 409

14.5.2  示例—從兩個特性構造一個轉換後的特性 409

14.6  特徵提取 412

14.6.1  示例1—從一個特性中提取出3個特性 412

14.6.2  示例2—形態特徵提取 413

14.6.3  前幾章的特徵提取示例 414

14.6.4  數據清洗和特徵提取示例 415

14.6.5  數據歸約和特徵提取的示例 415

14.7  對數轉換 416

14.7.1  手動轉換 417

14.7.2  通過模塊轉換 418

14.8  平滑、聚合和分箱 419

14.8.1  平滑 420

14.8.2  函數型數據平滑 421

14.8.3  滾動數據平滑 422

14.8.4  聚合 425

14.8.5  分箱 426

14.9  小結 428

14.10  練習 429

第4篇  案 例 研 究

第15章  案例研究1—科技公司中員工的心理健康問題 435

15.1  技術要求 435

15.2  科技公司中員工的心理健康問題案例研究簡介 435

15.2.1  分析結果的受眾 436

15.2.2  數據來源介紹 437

15.3  集成數據源 438

15.4  清洗數據 440

15.4.1  檢測和處理異常值和誤差 442

15.4.2  檢測和處理缺失值 444

15.4.3  從SupportQ1到AttitudeQ3特性的常見缺失值 445

15.4.4  Mental Illness特性中的缺失值 445

15.4.5  Age特性中的缺失值 445

15.5  分析數據 445

15.5.1  分析問題1—員工心理健康在性別特性上是否存在顯著差異 446

15.5.2  分析問題2—員工的心理健康在不同年齡特性之間是否存在

??顯著差異 447

15.5.3  分析問題3—對員工心理健康問題提供更多支持的公司是否擁有

??心理更健康的員工 449

15.5.4  分析問題4—個人對心理健康的態度是否會影響他們的心理健康

??和尋求治療 452

15.6  小結 454

第16章  案例研究2—新冠肺炎疫情住院病例預測 455

16.1  技術要求 455

16.2  本章案例研究簡介 455

16.3  數據來源簡介 457

16.4  預處理數據 458

16.4.1  設計數據集以支持預測 458

16.4.2  填充占位符數據集 460

16.4.3  有監督的降維 462

16.5  分析數據 464

16.6  小結 467

第17章  案例研究3—美國各地區聚類分析 469

17.1  技術要求 469

17.2  本章案例研究介紹 469

17.3  數據來源介紹 471

17.4  預處理數據 472

17.4.1  將election_df轉換為partisan_df 473

17.4.2  構造partisanism特性 473

17.4.3  通過FDA計算partisanism的均值和斜率 474

17.4.4  清洗edu_df、employ_df、pop_df和pov_df 475

17.4.5  數據集成 475

17.4.6  數據清洗3級—處理缺失值、異常值和誤差 476

17.4.7  檢查數據冗餘 476

17.5  分析數據 479

17.5.1  使用PCA可視化數據集 479

17.5.2  執行k-means聚類分析 480

17.6  小結 482

第18章  總結、實際案例研究和結論 483

18.1  本書內容總結 483

18.1.1  第1篇—技術基礎 483

18.1.2  第2篇—分析目標 483

18.1.3  第3篇—預處理 484

18.1.4  第4篇—案例研究 484

18.2  實際案例研究 485

18.2.1  谷歌新冠肺炎疫情移動數據集 485

18.2.2  美國警察殺人事件 486

18.2.3  美國交通事故 487

18.2.4  舊金山的犯罪數據 488

18.2.5  數據分析就業市場 489

18.2.6  FIFA 2018最佳球員 489

18.2.7  籃球熱手 490

18.2.8  加利福尼亞州的野火 491

18.2.9  硅谷多元化概況 492

18.2.10  識別虛假招聘信息 492

18.2.11  尋找更多實際案例研究 493

18.3  結論 493

18.3.1  數據可視化和講故事 494

18.3.2  算法分析 494

18.3.3  技術應用 495

18.3.4  數學研究 496

·XVI·

Python數據預處理

 

·XVII·

目    錄