美文网首页
数据分析-数据清理流程二

数据分析-数据清理流程二

作者: feng_zhenrong | 来源:发表于2020-04-28 23:18 被阅读0次

    下面我们通过一个简单例子来梳理数据清理步骤,也可以直接打开我的项目查看源代码;

    1.收集数据

    首页我们要加载项目里的数据集,代码如下:

    import pandas as pd
    df = pd.read_csv('animals.csv')
    

    2.评估数据

    在这一步我们需要查看数据集数据来评估数据集,评估数据集可通过多种方法结合评估数据,通常有head()、info()、describe()、value_counts()、sum()、duplicated();当然这只是简单评估方法,在比较复杂的情景下,可能需要查询数据某个字段的是否有缺失值,或者某些字段在某种情况才有异常值,需要单独刷选出来检查,或者是在某个时间段的数据有问题,不同情况不同分析评估。

    本例子比较简单,我们这里只需要用head()来评估数据就行,代码如下:


    评估数据

    从上图我们可以看出数据集存在以下质量问题,我们记录下来:

    质量

    • 每个动物名称前面的 bb
    • 体重和脑重量中小数点使用 ! 而不是 .

    3.清理数据

    清理数据前,我要copy一份数据进行清理

    df_clean = df.copy()
    

    在这里我们就要通过上个流程说的步骤来进行清理数据,如果有不清楚的可以会看我上个流程写的内容(清理流程一)

    定义

    • 使用字符串分割,删除每个动物名称前面的 'bb'
    • 在体重和脑重量两列,将 ! 替换为 .

    代码

    # 使用字符串分割,删除每个动物名称前面的 'bb' 
    df_clean['Animal'] = df_clean['Animal'].str[2:]
    
    # 在体重和脑重量两列,将 ! 替换为 . 
    df_clean['Body weight (kg)'] = df_clean['Body weight (kg)'].str.replace('!', '.')
    df_clean['Brain weight (g)'] = df_clean['Brain weight (g)'].str.replace('!', '.')
    

    测试

    重新使用head() 查看数据集是否清理好

    df_clean.Animal.head()
    
    清理后数据

    注意:代码在这里我们数据清理步骤已完成,在这里大家也可以把清理步骤使用多个定义、代码 和 测试 标题来进行清理,为什么呢?因为,我们数据往往不止质量问题,也有可能有整洁度问题,实际上,你可以立即进行定义、编码和测试。如果你需要清理许多质量和整洁度问题呢?使用多个定义、代码 和 测试 标题这种顺序来清理一个一个的问题,这样结构就比较清晰,也不容易忽略某个问题。

    下面我们重新清理,上面评估出的问题有2个,下面我们使用2个定义、代码 和 测试来进行清理数据,

    清理2

    - 每个动物名称前面的 bb

    定义

    使用字符串分割,删除每个动物名称前面的 'bb' 。

    代码
    df_clean['Animal'] = df_clean['Animal'].str[2:]
    
    测试
    df_clean.Animal.head()
    

    - 体重和脑重量中小数点使用 ! 而不是 .

    定义

    在体重和脑重量两列,将 ! 替换为 .

    代码
    df_clean['Body weight (kg)'] = df_clean['Body weight (kg)'].str.replace('!', '.')
    df_clean['Brain weight (g)'] = df_clean['Brain weight (g)'].str.replace('!', '.')
    
    测试
    df_clean.Animal.head()
    

    相关文章

      网友评论

          本文标题:数据分析-数据清理流程二

          本文链接:https://www.haomeiwen.com/subject/srdiwhtx.html