#yyds幹貨盤點#Pandas數據清洗實用指南

來西瓜 2021-11-25 10:36:02
yyds pandas 清洗 指南

Pandas 數據清洗實用指南

      數據科學項目中最耗時的部分是數據清洗和准備。幸好有許多强大的工具可以加快此過程。其中之一是 Pandas,它是一個被廣泛使用的 Python 數據分析庫。在這篇文章中,將介紹一個典型的使用Pandas進行數據清洗的過程,因為通過實踐能更容易理解什麼是數據清洗。本文由以下四個部分組成:

      1)創建DataFrame

      2)數據概覽

      3)處理缺失值

      4)選擇數據

      當然,首先需要導入兩個庫:

      import pandas as pd

      import numpy as np

創建DataFrame

      在現實生活中,大多數情况下是從文件中讀取數據,而不是創建 DataFrame。 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據類型

#yyds幹貨盤點#Pandas數據清洗實用指南_數據_02

數據概覽

      Pandas的describe函數提供數值(int或float)列的匯總統計信息。 它計算值的數量並顯示平均值、標准值、最小值和最大值以及 25%、50% 和 75% 的分比特數。

      df.describe() 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據類型_03

      盡管所有列的行數相同,但列 d 的計數不同,因為 describe 函數不計算 NaN(缺失)值。value_counts() 顯示列中出現次數的值:

      df.c.value_counts()

#yyds幹貨盤點#Pandas數據清洗實用指南_數據_04

      value_counts() 不計算 NaN(缺失)值。

      我們還應該檢查數據類型並在我們的分析中考慮它們。 某些功能只能對某些數據類型執行。 我們可以使用 dtypes 輕松檢查數據類型:

      df.dtypes

#yyds幹貨盤點#Pandas數據清洗實用指南_缺失值_05

      ‘d’ 和 ‘e’ 列都有整數,但 ‘d’ 列的數據類型是浮點數。 原因是 d 列中的 NaN 值。 NaN 值被認為是浮點數,因此該列中的整數值被向上轉換為浮點數據類型。 

處理缺失值

      處理缺失值是數據清理和准備過程的重要組成部分,因為現實生活中幾乎所有數據都帶有一些缺失值。在處理缺失值之前,我們需要檢查DataFrame中缺失值的數量。這一步很重要,因為行或列中缺失值的比率在如何處理它們方面起著關鍵作用。isna() 檢查條目是否為 NaN(缺失)。與 sum 方法結合使用時,它會給出每列中缺失值的總數:

      df.isna().sum()

#yyds幹貨盤點#Pandas數據清洗實用指南_數據分析_06

      與 any() 結合使用時,它返回一個布爾值,指示該列中是否有任何缺失值:

      df.isna().any()

#yyds幹貨盤點#Pandas數據清洗實用指南_數據清洗_07

      處理缺失值的方法有很多種,但對於每項任務都沒有一個“最佳”選擇。 它高度依賴於數據的任務和特征。 我將在這裏列出幾種不同的處理缺失值的方法。

      我們可以用該列的最大值替換該列中的缺失值:

      df.d.fillna(df.d.max(), inplace=True)

 #yyds幹貨盤點#Pandas數據清洗實用指南_數據類型_08

 #yyds幹貨盤點#Pandas數據清洗實用指南_數據_09      

      inplace參數一定要設置為True,否則變更將不生效。

      根據情况,如果缺失值太多,我們可能會决定删除一行或一列。 在沒有先驗知識的情况下填充許多缺失值可能會對我們的分析產生負面影響。 DataFrame 中有 5 列,如果只想保留至少具有 4 個值的樣本(行), 換句話說,至少有 2 個缺失值的行將被删除。我們可以使用帶有 thresh 參數的 dropna 函數。 Axis 參數用於錶示行 (0) 或列 (1)。

      df.dropna(thresh=4, axis=0, inplace=True)

#yyds幹貨盤點#Pandas數據清洗實用指南_數據_10

#yyds幹貨盤點#Pandas數據清洗實用指南_缺失值_11     

      thresh 參數錶示行或列不需要删除的非缺失值的數量。

      我們還可以用之前或之後的值填充缺失值。 這種方法多用於時間序列數據。方法參數與’ffill’(向前傳播)或‘bfill’(向後傳播)參數一起使用:

      df.b.fillna(method=‘ffill’, inplace=True)

#yyds幹貨盤點#Pandas數據清洗實用指南_數據分析_12 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據分析_13

      我們還可以用該列中最常見的值填充缺失值。 Value_counts() 根據值在列中的出現次數對值進行排序。 所以我們可以使用 value_counts() 的索引來得到最常見的值:

      df.c.fillna(df.c.value_counts().index[0], inplace=True)

#yyds幹貨盤點#Pandas數據清洗實用指南_數據分析_14  

#yyds幹貨盤點#Pandas數據清洗實用指南_數據類型_15


選擇數據

      iloc 和 loc 允許選擇 DataFrame 的一部分。iloc通過比特置選擇,loc通過標簽選擇。

      1)選擇第二行

      df.iloc[1] 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據_16

      2)選擇第一行第二列的值

      df.iloc[0, 1] 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據分析_17

      3)選擇所有行的第三列

      df.iloc[:, 2] 

#yyds幹貨盤點#Pandas數據清洗實用指南_數據_18

      4)選擇前兩行的第二列

      df.iloc[:2, 1] 

#yyds幹貨盤點#Pandas數據清洗實用指南_缺失值_19

      5)選擇前兩行的’b’列

      df.loc[:2, ‘b’]

 #yyds幹貨盤點#Pandas數據清洗實用指南_缺失值_20


結論

      我在這裏介紹的只是 Pandas 在數據分析過程中的一小部分能力,但肯定會對您的項目有用。 試圖一次學習所有內容是不合理的。 相反,學習小塊並通過實踐吸收信息將幫助您建立全面的數據分析技能。




版权声明
本文为[來西瓜]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/11/20211125103119067l.html

  1. Sorting out the learning route for Python beginners
  2. The 6-line Python code uses the pdf2docx module converter object to convert PDF into docx file
  3. Batch compression of picture files using Python
  4. Using Python to write djikstra algorithm for robot path planning
  5. python实现手机号获取短信验证码 | 对接打码平台
  6. Detailed explanation of Euler Rodriguez code in Python
  7. Prove that angular displacement is not a vector with Python
  8. Using Python program to deeply understand homogeneous transfer matrix t
  9. Triple product formula of vector and its proof (with Python code)
  10. Derivation of differential formula of DH matrix using Python
  11. Python openpyxl operation on Excel (get the total number of columns, get the value of a row, get the value of a column, and set the cell value)
  12. Realizing Excel data filtering and data matching with Python
  13. Python reads and writes files
  14. Four scenarios of processing Excel files with Python
  15. Python converts dictionary to excel
  16. Python implements file reading and writing
  17. Basic Python syntax -- functions
  18. Python learning thinking
  19. Python basic syntax -- Boolean operation, break, continue, pass
  20. Python basic syntax -- loop
  21. Basic Python syntax -- lists, dictionaries
  22. Python basic syntax -- conditional judgment, input ()
  23. Python first experience - efficient office, data analysis, crawler
  24. Modulenotfounderror: no module named 'Django summernote details
  25. Key points for Django to make personal blog website
  26. Path setting of templates in Django settings
  27. Leetcode 1611. Minimum one bit operations to make integers Zero (Python)
  28. Directory C: \ users \ a \ desktop \ Django_ The blog master is registered as the GIT root, but no git repository details are found there
  29. Django. Core. Exceptions. Improveconfigured: application labels aren't unique, duplicates: admin
  30. How to verify that Django has created the project details correctly
  31. How to create a database when using Django to construct a website
  32. The solution of using Django framework to create project in Windows system
  33. Running Python virtual environment on win10 system to execute ll_ Env \ scripts \ activate: unable to load file elaboration scheme
  34. Detailed explanation of constructing virtual environment with Django in Python 3
  35. Python implementation of affine cipher
  36. RC4 Python implementation
  37. Simple: Python_ Automatic body temperature clock
  38. 用python把两个csv中的日期的列提出年,做出新的一列,再把两个csv表格按照新做出的日期这列和ID号合并为一个表。
  39. python中类实例化后,其对象无法被其他模块调用方法
  40. [JSON] - Python creates JSON file format
  41. Utilisez Python pour proposer l'année de la colonne de date dans les deux CSV, faire une nouvelle colonne, puis combiner les deux tableaux CSV en un seul tableau avec la colonne de date et le numéro d'identification.
  42. 关于#python#的问题,请各位专家解答!
  43. ***
  44. ***
  45. 關於#python#的問題,請各比特專家解答!
  46. S'il vous plaît répondre aux questions de Python!
  47. About the import of Python class
  48. Magic Python property decorator: 1 line of code makes Python methods become properties in seconds
  49. Python 音频调整音量(附代码) | Python工具
  50. Python programming ideas [series of articles]
  51. Python crawler programming idea (67): modify nodes using pyquery
  52. Python crawler programming idea (66): using pyquery to obtain node information
  53. Python crawler programming idea (65): find nodes using pyquery
  54. Python crawler programming idea (64): using CSS selectors in pyquery
  55. Python crawler programming idea (63): basic knowledge of pyquery
  56. Python crawler programming idea (62): project practice: capturing cool dog online red song list
  57. Python crawler programming idea (61): project practice: capturing rental information
  58. Python crawler programming idea (60): get CSS selector code through browser
  59. Python crawler programming idea (58): nested selection nodes with beautiful soup CSS selectors
  60. Python crawler programming idea (56): find method of beautiful soup method selector