1. 程式人生 > >3-6 用 Pandas 進行資料預處理:資料清洗與視覺化(版本:py3)

3-6 用 Pandas 進行資料預處理:資料清洗與視覺化(版本:py3)

主要內容:

  • 格式轉換
  • 缺失資料
  • 異常資料
  • 資料標準化操作

格式轉換

如Python記錄時間的方式,不能夠直接實現減運算,就需要進行轉換

  • pandas.to_datetime

缺失資料

  • 忽略缺失資料
  • 直接標記
  • 利用平均值、最常出現值進行填充

異常資料

  • 處理方式可類比缺失資料

標準化

  • 常出現在使用者自主輸入的一些屬性上,需要你進行標準化的處理,本節課程暫不涉及

資料清理示例:Airbnb

工具:Pandas庫,Seaborn庫  1.在開始操作前,請確認你已經安裝好Pandas&Seaborn庫  2.資料集準備:Airbnb Dataset Tips:養成處理資料集前,先看資料描述的習慣,會為你省下不少時間

#讀取資料
import pandas
users=pandas.read_csv("train_users_2.csv")

#首先需要進行的是對資料的基本檢視
#第一行是屬性的名稱,index從0開始,NaN代表missing value
users.head()
#和head相反,tail給出了資料集末尾的值
users.tail()
users.describe()
users.shape
users.head()
uesers.loc[0:3,"age"]

#格式轉換:轉變為日期格式,可以實現時間的加減
users["date_account_created"] = pandas.to_datetime(users["date_account_created"])

users.loc[0,"date_account_created"]-users.loc[1,"date_account_created"]

#定義到時分秒的關係,設定format函式引數,針對一些非常規的資料
users["timestamp_first_active"] = pandas.to_datetime(users["timestamp_first_active"],format="%Y%m%d%H%M%S")

#缺失資料處理:檢視去掉缺失值的資料
users["age"].dropna()

#畫圖,可以很直觀的觀察資料的異常值
import seaborn
seaborn.distplot(users["age"].dropna())
seaborn.boxplot(users["age"].dropna())

#異常資料處理:篩選age<90以及>10
users_with_true_age=users[users["age"]<90]
users_with_true_age=users_with_true_age[users_with_true_age["age"]>10]

程式碼小結

  • 格式轉換:使用pandas.to_datetime函式轉化為標準的時間格式
  • 缺失資料處理:dropna()函式進行缺失值處理

  • 異常資料處理:設定條件篩選”age”欄位<90以及>10

補充知識

Pandas & Seaborn 庫的補充

Pandas

Pandas逐漸成為了一個非常大的庫,在資料處理問題方面表現優秀,是一個不可或缺的工具,Pandas中包含兩個主要的資料結構:Series & DataFrame

請閱讀:官方文件,官方文件永遠是最好的學習材料,重點閱讀:

  • 10 Minutes to pandas,建議跟著學習手冊操作一遍。重點閱讀Pandas的不同資料結構 、 head,describe,index等函式來檢視DataFrame 、 Merge DataFrame(Concat & Join & Append) 、Grouping 、 Reshaping,如果學有餘力的話建議自學一下Time Series 的內容
  • Computational tools中Statistical Functions 部分,掌握基本的統計功能的實現
  • 請閱讀VisualizationMatplotlib庫是如何實現視覺化,學會不同型別圖對應的函式

最後可以通過查詢Pandas速查手冊中文版,在有需要的時候,迅速解決疑問

Seaborn

Seaborn是基於matplotlib的繪相簿,可以製作更多更美觀的圖形,如Example gallery中也可以看到很多關於影象的示例。這個繪相簿可以很好地輔助我們對資料進行第一步的觀察

請閱讀:Seaborn tutorial,閱讀Style management & Plotting functions & Structured grids 這三塊內容,重點掌握畫圖的函式,以實現畫出不同型別的影象

資料預處理

請閱讀:

  • 資料探勘中的資料預處理,本連結詳細提供了關於資料清洗(值缺失、噪聲) & 資料融合(實體識別,冗餘和相關性分析)的方法,值得仔細閱讀
  • 資料預處理,瞭解更多關於資料預處理的方法,和背後的數學原理