加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 大数据 > 正文

快速教你用pandas处理缺失值

发布时间:2021-06-04 11:02:03 所属栏目:大数据 来源:互联网
导读:手把手教你用pandas处理缺失值 在进行数据分析和建模的过程中,大量的时间花在数据准备上:加载、清理、转换和重新排列。本文将讨论用于缺失值处理的工具。 作者:Wes McKinney来源:大数据DT|2021-02-06 14:55 收藏 分享 pandas对象的所有描述性统计信息默
手把手教你用pandas处理缺失值
在进行数据分析和建模的过程中,大量的时间花在数据准备上:加载、清理、转换和重新排列。本文将讨论用于缺失值处理的工具。
作者:Wes McKinney来源:大数据DT|2021-02-06 14:55 收藏  分享
 
pandas对象的所有描述性统计信息默认情况下是排除缺失值的。
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默认情况下会删除包含缺失值的行:

(编辑:阜新站长网)

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

    热点阅读