pandas 过滤缺失值函数 dropna

 

参考资料

  1. pandas官方文档 Release 0.23.4
  2. 利用python进行数据分析 第二版  Wes Mckinney

函数功能:当DataFrame数据中出现缺失值时,删除这些缺失值所在的轴(满足特定条件)

调用方法:

df  =  data.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)

参数说明:

    axis :为轴方向 : 默认为axis=0

                             当axis=0,当某行出现缺失值时,将该行丢弃并返回

                             当axis=1,当某列出现缺失值时,将改列丢弃并返回

   how :确定缺失值的个数:缺省时为how=‘any’

                              how=‘any’ ,表明只要某行或者列出现缺失值就将该行列丢弃

                               how=‘all’    ,表明某行列全部为缺失值才将其丢弃

 thresh:阈值设定

                                 当行列中非缺省值的数量少于给定的值就将该行丢弃    

 subset:部分标签中删除某行列

                                subset = [  'a','d']  即丢弃子列 a d 中含有缺失值的行

iniplace: bool取值,默认False

                                当inplace= True, 即对原数据操作,没有返回值

 

代码例子如下:

>>>import numpy as np
>>>import pandas as pd
>>>from pandas import Series,DataFrame

>>>dt = DataFrame(np.arange(20).reshape(4,5),columns=['a','b','c','d','e'])
>>>for i in range(4):
...   for j in range(4-i):
...      dt.iloc[i,j] = np.nan

>>>dt
     a     b     c   d   e
0  0.0   1.0   2.0   3   4
1  NaN   NaN   NaN   8   9
2  NaN   NaN  12.0  13  14
3  NaN  16.0  17.0  18  19

>>>dt.dropna()
     a    b    c  d  e
0  0.0  1.0  2.0  3  4

>>>dt.dropna(axis = 1)
    d   e
0   3   4
1   8   9
2  13  14
3  18  19

>>>dt.dropna(how='all')  #因为每一行都有非缺失值,所以不丢弃任何行
     a     b     c   d   e
0  0.0   1.0   2.0   3   4
1  NaN   NaN   NaN   8   9
2  NaN   NaN  12.0  13  14
3  NaN  16.0  17.0  18  19

>>>dt.dropna(thresh=4)  #因为第1行和第2行中非缺失值少于4个,所以丢弃,只剩下第0行和第3行
     a     b     c   d   e
0  0.0   1.0   2.0   3   4
3  NaN  16.0  17.0  18  19


>>>dt.dropna(subset=['b','d'])  #标签a列和b列中对应的第1行和第2行中有缺失值
     a     b     c   d   e
0  0.0   1.0   2.0   3   4
3  NaN  16.0  17.0  18  19

>>>dt.dropna(inplace = True)
>>>dt
     a    b    c  d  e
0  0.0  1.0  2.0  3  4

完结。。。。。。

欢迎交流   email : [email protected]

 

 

 

你可能感兴趣的:(pandas 过滤缺失值函数 dropna)