數據分析第四篇:數據清洗

須要清洗的數據有下面幾種形式spa

 

2.1錯誤值

出現大量0的話,能夠使用缺失值替代,而後再用缺失值填補的方法處理blog

camp['AvgIncome']=camp['AvgIncome'].replace({0: np.NaN})ip

 

2.2 缺失值

 

vmean = camp['Age'].mean(axis=0, skipna=True)io

camp['Age_empflag'] = camp['Age'].isnull()function

camp['Age']= camp['Age'].fillna(vmean)map

camp['Age'].describe()方法

 

2.3 重複

去掉重複值im

 

2.4 數據不一致

- 時間單位不一樣能夠使用正則使其一致化數據

- 金額單位不一樣須要一致化異常

 

2.5 離羣值(異常值)

1.刪除異常值(5倍標準差以外的數據)

2.蓋帽法處理異常值,把1%的異常值用99%處的值代替

def blk(floor, root): # 'blk' will return a function

    def f(x):       

        if x < floor:

            x = floor

        elif x > root:

            x = root

        return x

    return f

 

q1 = camp['Age'].quantile(0.01) # 計算百分位數

q99 = camp['Age'].quantile(0.99)

blk_tot = blk(floor=q1, root=q99) # 'blk_tot' is a function

camp['Age']= camp['Age'].map(blk_tot)

camp['Age'].describe()

 

3.分箱法處理異常值

camp['Age_group1'] = pd.qcut( camp['Age'], 4) # 這裏以age_oldest_tr字段等寬分爲4

camp.Age_group1.head()

相關文章
相關標籤/搜索