加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

一篇文章告诉你用pandas处理缺失值

发布时间:2021-05-15 18:14:09 所属栏目:大数据 来源:互联网
导读:pandas对象中表现缺失值的方式并不完美,但是它对大部分用户来说是有用的。对于数值型数据,pandas使用浮点值NaN(Not a Number来表示缺失值)。我们称NaN为容易

pandas对象中表现缺失值的方式并不完美,但是它对大部分用户来说是有用的。对于数值型数据,pandas使用浮点值NaN(Not a Number来表示缺失值)。我们称NaN为容易检测到的标识值:

In : 

string_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado']) 

string_data 

Out:

0      aardvark  

1     artichoke  

2            NaN  

3       avocado  

dtype: object 

In:

string_data.isnull() 

Out:

0     False  

1     False  

2      True  

3     False  

dtype: bool 

在pandas中,我们采用了R语言中的编程惯例,将缺失值成为NA,意思是not available(不可用)。在统计学应用中,NA数据可以是不存在的数据或者是存在但不可观察的数据(例如在数据收集过程中出现了问题)。当清洗数据用于分析时,对缺失数据本身进行分析以确定数据收集问题或数据丢失导致的数据偏差通常很重要。

Python内建的None值在对象数组中也被当作NA处理:

In:

string_data[0] = None 

string_data.isnull() 

Out:

0      True  

1     False  

2      True  

3     False  

dtype: bool 

pandas项目持续改善处理缺失值的内部细节,但是用户API函数,比如pandas. isnull,抽象掉了很多令人厌烦的细节。处理缺失值的相关函数列表如下:

 dropna:根据每个标签的值是否是缺失数据来筛选轴标签,并根据允许丢失的数据量来确定阈值

 fillna:用某些值填充缺失的数据或使用插值方法(如“ffill”或“bfill”)。

 isnull:返回表明哪些值是缺失值的布尔值

 notnull:isnull的反作用函数

01 过滤缺失值

有多种过滤缺失值的方法。虽然你可以使用pandas.isnull和布尔值索引手动地过滤缺失值,但dropna在过滤缺失值时是非常有用的。在Series上使用dropna,它会返回Series中所有的非空数据及其索引值:

In:

from numpy import nan as NA 

data = pd.Series([1, NA, 3.5, NA, 7]) 

data.dropna() 

Out:

0     1.0  

2     3.5  

4     7.0  

dtype: float64 

上面的例子与下面的代码是等价的:

In:

data[data.notnull()] 

Out:

0     1.0  

2     3.5  

4     7.0  

dtype: float64 

当处理DataFrame对象时,事情会稍微更复杂一点。你可能想要删除全部为NA或包含有NA的行或列。dropna默认情况下会删除包含缺失值的行:

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读