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

Posted Avention

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:指定一个值去替换缺失值
 
=========================================
这篇博客不错,大家可以参考下
 
 
 
 
 
 
 
 
 
 
 
 
 
 

以上是关于6 DataFrame处理丢失数据--数据清洗的主要内容,如果未能解决你的问题,请参考以下文章

数据清洗--DataFrame中的空值处理

文摘:DataFrame数据清洗

python数据分析pandas中的DataFrame数据清洗

03_特征清洗

大数据清洗4(pandas-DataFrame常用操作)

数据清洗之 高阶函数处理