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


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

 

2.1錯誤值

出現大量0的話,可以使用缺失值替代,然后再用缺失值填補的方法處理

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

 

2.2 缺失值

 

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

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

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

camp['Age'].describe()

 

2.3 重復

去掉重復值

 

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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM