3-6 用 Pandas 進行資料預處理:資料清洗與視覺化(版本:py3)
阿新 • • 發佈:2018-12-10
主要內容:
- 格式轉換
- 缺失資料
- 異常資料
- 資料標準化操作
格式轉換
如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 這三塊內容,重點掌握畫圖的函式,以實現畫出不同型別的影象
資料預處理
請閱讀:
- 資料探勘中的資料預處理,本連結詳細提供了關於資料清洗(值缺失、噪聲) & 資料融合(實體識別,冗餘和相關性分析)的方法,值得仔細閱讀
- 資料預處理,瞭解更多關於資料預處理的方法,和背後的數學原理