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数据。
===================================
练习:
- 简述None与NaN的区别
- 假设张三李四参加模拟考试,但张三因为突然想明白人生放弃了英语考试,因此记为None,请据此创建一个DataFrame,命名为ddd3

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

- 用李四的英语成绩填充张三的英语成绩?
 
===================================
根据官方文档,我们知道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:指定一个值去替换缺失值
=========================================
这篇博客不错,大家可以参考下
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号