这篇文章主要围绕“Python pandas中缺失值类型有哪些?如何对pandas缺失值进行判断?”进行讲解,内容详细,步骤清晰,简单易懂,希望你阅读之后收获满满,下面跟着我一起来学习“Python pandas中缺失值类型有哪些?如何对pandas缺失值进行判断?”的新知识吧!
一、缺失值类型
在pandas中,缺失值类型有三种表示方法,分别是np.nan,none,pd.NA,缺失值默认显示的数据是NaN。
1、np.nan
这种缺失值它与任何值进行比较都是不相等的,其中也包括跟它自己进行比较,如果用nan和任何其它值比较都会返回nan。比如:
np.nan == np.nan False
在我们对一个数据进行读取的时候,不管在这个列中它是一个说明数据类型,默认的缺失值就是np.nan,这也是它的一个特点,在numpy中nan是以一个浮点数的形式存在,所有一个整形的列会转换成浮点型,字符就不能进行转换,只能使用object类型。原来的类型不会改变。举个例子:
type(np.nan) float pd.Series([1,2,3]).dtype dtype('int64') pd.Series([1,np.nan,3]).dtype dtype('float64')
2、None
这种缺失值与np.nan有点区别,它能跟自己进行比较,并且是相等的。
None == None True
在传入数值类型后,它会自动变为np.nan。
type(pd.Series([1,None])[1]) numpy.float64
在panda中只有你传入的数据类型是object时,它才不会改变值,一般情况下是看不到这个值的出现,只有我们手动定义才可以看见。
type(pd.Series([1,None],dtype='O')[1]) NoneType
3、NA标量
根据python的版本不断更新,这种缺失值在pandas版本之后才被使用,它可以表示一个空整数、布尔以及一个空字符。它就是为了让我们在对数据类型进行采集的时候不会让缺失值的表示变得混乱,主要就是用来进行一个统一。
s_new = pd.Series([1, 2], dtype="Int64") s_new 0 1 1 2 dtype: Int64 s_new[1] = pd.NaT s_new 0 1 1 <NA> dtype: Int64
同样的对于布尔型、字符型一样不会改变原有数据类型,可以解决之前数据类型老是变换的问题。
二、对缺失值进行判断
上面我们了解了一些有关缺失值形式之后,我们还要学会对一个缺失值进行判断。对于一个dataframe而言,判断缺失的主要方法就是isnull()或者isna(),这两个方法会直接返回True和False的布尔值。可以是对整个dataframe或者某个列。
df = pd.DataFrame({ 'A':['a1','a2','a3','a4'], 'B':['b1',None,'b2','b3'], 'C':[4,5,6,7], 'D':[6,None,8,6]})
将无穷设置为缺失值
pd.options.mode.use_inf_as_na = True
1、对整个dataframe判断缺失
df.isnull() A B C D 0 False False False False 1 False True False True 2 False False False False 3 False False False False
这里使用了isnull的方法对一整个dataframe进行判断,如果有空值就会返回true。
2、对某个列判断缺失
df['C'].isnull() 0 False 1 False 2 False 3 False Name: C, dtype: bool
使用isna()方法对列的值判断缺失,如果有空值就会返回true。
这篇关于Python pandas中缺失值类型有哪些?如何对pandas缺失值进行判断?的文章就介绍到这了,想要学习更多相关pandas缺失数据处理内容,可以继续关注哦!