Python資料分析與挖掘實戰(資料預處理)

HuangZhang_123發表於2017-07-15

作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423


在做資料分析的時候,我們會通過爬蟲或者資料庫裡得到一批原始資料的。這個上節說過的,但是對於這些資料需要做一個資料清洗,去除異常值,缺失值等,確保資料的準確性和後續生成的模型的正確性。
這節就講解資料預處理。


缺失值處理:
處理方法大致三種:
1,刪除記錄
2,資料插補
3,不處理
如果簡單刪除資料達到既定的目的,這是最有效的,但是這個方法很大侷限性,容易造成隱藏的資訊丟失,實際中不建議。如果不處理,會直接影響資料的數值和準確性。
基本上都是採用資料插補的方式填充缺失值。這個插補方式很多,如圖
這裡寫圖片描述
具體使用那種方式根據實際而定,這裡介紹一種插補方法:
拉格朗日插值
(當看到深深的數學公式的時候,我內心是崩潰的)
在python裡直接有這個方法(scipy庫)
例項:
資料來源,excel裡
這裡寫圖片描述
有兩列,資料有200行。
程式碼:
這裡寫圖片描述
def ployinterp_column是拉格朗日插值的使用。
這裡取出缺失值前5行和後5行資料進行計算,得出一個pd的Series格式的資料。
然後剔除缺失值所在的行,或者前後5行的缺失值。
然後lagrange(y.index, list(y)),其中y.index, list(y)分別用print出來,index為資料行數,list(y)為資料。(n)是插入的位置。

這裡介紹一下pd的DataFrame和Series的區別。
首先,pd.read_excel(inputfile)是生成一個DataFrame
如果要讀取某個數的話,data[‘銷量’][9] ,[‘銷量’]是列名,如果沒有宣告的話,必需和excel的一致,不能用數字做索引。第二個[]是行數。
如果要獲取某部分資料的話,比如
這裡寫圖片描述
data[‘銷量’][[9,10]] 是返回一個Series
data[‘銷量’][9] 是返回某個資料。

基本上,這段程式碼比較難的都剖釋了。不難理解。


異常值處理:
異常值和缺失值不同,異常值是不符合實際的資料,比如正常情況下,月薪10億。這個資料就在現實中就不太可能實現了。
處理方法:
這裡寫圖片描述
基本上常用的處理方法和缺失值處理一樣的。不過實際中的處理方法還需結合實際考慮。


相關文章