• 4、Python 数据分析-Pandas数据清洗【1】


    1、处理丢失数据

    • 有两种丢失数据:
      • None
      • np.nan(NaN)

    2、两种丢失数据的区别

    2.1、None是Python自带的,其类型为Python object。因此,None不能参与到任何计算中。

    object类型的运算要比int类型的运算慢得多

    计算不同数据类型求和时间

    type(None)
    >>>
    NoneType
    

    2.2、np.nan(NaN)

    np.nan是浮点型,能参与到计算中。但计算结果总是NaN。

    可以使用np.nan*()函数来计算nan,此时视nan为0。

    type(np.nan)
    >>>
    float
    

    2.3、pandas中的None与NaN

    1)pandas中None与np.nan都视作np.nan

    df = DataFrame({'age':[18,22,34,25,13],
                    'sex':['男','女','男','男','女']},
                    index=['小张','小王','小李','小马','小胡'],
                    columns=['age','sex','hobby'])
    

    2.4、pandas处理空值操作

    • isnull
    • notnull
    • any
    • all
    • dropna
    • fillna
    小马,小胡的hobby列没有值,需要进行数据清洗。
    df.isnull().any(axis=1)#以行为单位
    >>>
    小张    False
    小王    False
    小李    False
    小马     True
    小胡     True
    dtype: bool
    
    #查看哪些数据为空值
    s = df.isnull().any(axis=1)
    df[s]
    

    # 将空的数据进行提取
    s1 = df.notnull()
    

    s2 = s.all(axis=1)
    df[s2]
    

    notnull()判断数据不为空,所有数据都不为空,才能提取出来,用all(),只要有一个为空用any()。dropna():高级用法,直接将存在缺失数据的行删除

    过滤行

    df.dropna(axis=0)
    

    也可以选择过滤的方式 how='any'

    df.dropna(axis=0,how='any')
    

    fillna():填充丢失数据

         填充函数Series/DataFrame
    
    #对所有的NaN数据进行替换
    df.fillna(value='排BUG')
    

    #用下一行数据进行填充(近邻值)
    df.fillna(method='bfill',axis=0)
    
    #用上一行数据进行填充(近邻值)
    df.fillna(method='ffill',axis=0)
    

    如果将 inplace=True ,就会更改原DataFrame数据,而不是返回新的DataFrame数据。

    3、练习

    自定义一个携带空值的df,然后要求使用列的均值填充列中的空值

    import numpy as np
    
    
    df = DataFrame(data=np.random.randint(0,100,size=(10,8)),columns=['A','B','C','D','E','F','G','H'])
    df.iloc[1,3] = None
    df.iloc[3,4] = np.nan
    df.iloc[5,5] = np.nan
    df.iloc[2,4] = np.nan
    df.iloc[2,5] = np.nan
    
    

    for col in df.columns:	
        #将存有空值的列找到
        if df[col].isnull().sum() > 0:
            df[col] = df[col].fillna(value=np.mean(df[col]))
    

  • 相关阅读:
    C语言枚举类型(C语言enum用法)详解
    基础练习 报时助手
    怎么将CAD转JPG?教你两种CAD转JPG方法
    CAD图纸怎么看?这两种方法值得看
    某酒店建筑设计CAD施工图
    CAD怎么算面积?这种方法你要知道
    怎么将DWG转PDF?分享一个在线转换方法
    如何使用CAD删除命令?怎么删除图纸中线段
    CAD制图软件哪个好?试试这两个就知道了
    CAD制图初学入门如何学好CAD?CAD大神总结5点诀窍,必须收藏
  • 原文地址:https://www.cnblogs.com/remixnameless/p/13205559.html
Copyright © 2020-2023  润新知