数据分析第四篇:数据清洗

须要清洗的数据有下面几种形式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()

相关文章
相关标签/搜索