• 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:指定一个值去替换缺失值
     
    =========================================
    这篇博客不错,大家可以参考下
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    C语言实现表达式求值,支持+、-、*、/四则运算,并且支持多级括号,自定义了栈的操作。
    postman-Runner
    Jmeter性能测试,使用ServerAgent监控服务端性能指标
    python使用bs4爬取boss静态页面
    selenium环境搭建,浏览器驱动安装
    python使用HTMLTestRunner.py生成测试报告
    偶现bug如何处理?
    Java连接数据库,及增删改查
    Java的get、post请求
    TestNG安装及使用
  • 原文地址:https://www.cnblogs.com/avention/p/9077414.html
Copyright © 2020-2023  润新知