• 6 DataFrame处理丢失数据--数据清洗


    处理丢失数据
     
        有两种丢失数据:
            
            · None
            · np.nan(NaN)
     
     
    1 None
        None是Python自带的,其类型为Python object。因此,None不能参与到任何计算中。
     
        object类型的运算要比int类型的运算慢得多
        计算不同数据类型求和时间
     
     
    2 np.nan(NaN)
     
        np.nan是浮点型,能参与到计算中。但计算结果总是NaN。
        可以使用np.nan*()函数来计算nan,此时视nan为0。
     
     
    3 pandas中的None与NaN
     
        1)pandas中None与np.nan都视作np.nan
     
        创建DataFrame

            张三、小齐的work列没有值,需要进行数据清洗。
     
                isnull()
     
                notnull()
     
    isnull()
     

        将空的数据就提取出来了。
     

     
            notnull()判断数据不为空,所有数据都不为空,才能提取出来,用all(),只要有一个为空用any()。
     
     
                dropna():过滤丢失数据
    Signature: df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)Docstring:
    Remove missing values.
     
        数据清洗通常只会将不符合条件的数据行删除,所以axis=0.
     
                    可以选择过滤的行还是列(默认是行)
                    也可以选择过滤的方式 how='all'

     
                fillna():填充丢失数据   
                    填充函数Series/DataFrame
     
    Signature: df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)Docstring:
    Fill NA/NaN values using the specified method
     

     
     
    如果将 inplace=True  ,就会更改原DataFrame数据,而不是返回新的DataFrame数据。
     
     
    ===================================
    练习:
    1.     简述None与NaN的区别
    2.     假设张三李四参加模拟考试,但张三因为突然想明白人生放弃了英语考试,因此记为None,请据此创建一个DataFrame,命名为ddd3

    1.     老师决定根据用数学的分数填充张三的引用成绩,如何实现,

    1. 用李四的英语成绩填充张三的英语成绩?
        
     
    ===================================
     
    根据官方文档,我们知道fillna有一下几种method:‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None;
     
    那么每一种method都是起什么样的作用呢?
     
    method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
     
    Method to use for filling holes in reindexed Series pad / ffill: propagate last valid observation forward to next valid backfill / bfill: use NEXT valid observation to fill gap
    pad/ffill:用前一个非缺失值去填充该缺失值
    backfill/bfill:用下一个非缺失值填充该缺失值
     
    None:指定一个值去替换缺失值
     
    =========================================
    这篇博客不错,大家可以参考下
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    程序员追求的是什么?
    jQuery弹出层始终垂直居中,相对于屏幕,相对于当前窗口
    在VMware上制作一个简单的Linux
    Nginx 反向代理+Varnish 技术
    在做微信分享到朋友圈时,手机扫码报config:invalid signature,分享后后正常的问题,是url问题...
    phpStudy本地环境测试,打开网页很慢的解决办法!
    windows上安装redis并安装php5.6的redis扩展
    Redis 安装
    redis 查看的版本
    who is 规格严格
  • 原文地址:https://www.cnblogs.com/avention/p/9077414.html
Copyright © 2020-2023  润新知