pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna

np.nan != np.nan

在计算机中本没有绝对绝对相等的数据,所谓的相等只是精度允许的条件下相等!np.nan 原意为 not a number。

概括:

对某个值是否为nan进行判断,只能用np.isnan(i),绝不可用 i == np.nan 来判断,因为nan具有不等于自身的属性,应该使用np.isnan来测试nan值,如np.isnan(np.nan)将产生True;
np.nan非空对象,其类型为基本数据类型float;

np.nan

nan和None

python自带的 None ,为 NoneType 类型, 代表空类型,不能参与运算;
numpy中的 isnan 对应的是 NaN 值,代表“不是数字”,数值类型为 float ,数组中显示为nan,能参与运算,但结果显示为NaN;

None

代码示例
只可以用np.isnan判断array中是否包含np.nan

a = np.array([1,2,3,4,np.nan])
a == np.nan
>>> array([False, False, False, False, False])
np.nan in a
>>> False
np.isnan(a)
>>> array([False, False, False, False,  True])

np.nan可参与计算,np.nan占主导地位

a = np.array([1,2,3,4,np.nan])
a.max()
>>> np.nan
a.min()
>>> np.nan
b = np.array([1,np.nan,3,4,5])
a+b
>>> array([ 2., nan,  6.,  8., nan])

np.isnan只可以对数值型array判断,当array中其余的元素为字符串是,array会将np.nan转换成’nan’

在pandas中,np.nan和None都被视为缺省值

df = pd.DataFrame({'col1':['a','b','c','d'], 'col2':[1,2,3,4]})
df.loc[1,'col1'] = np.nan
df.loc[2,'col1'] = None
df
>>> col1   col2
0   a   1
1   NaN 2
2   None    3
3   d   4
 
pd.isna(df)
>>>    col1    col2
0   False   False
1   True    False
2   True    False
3   False   False

pandas中缺省值不参与计算

df = pd.DataFrame(np.arange(8).reshape(2,4))
df.iloc[0,1] = None
df.iloc[0,2] = np.nan
df
>>> 0  1   2   3
0   0   NaN NaN 3
1   4   5.0 6.0 7
 
df.min(axis=1)
>>> 0    0.0
1    4.0
dtype: float64

到此这篇关于pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna的文章就介绍到这了,vb.net教程C#教程python教程更多相关 np.nan, np.isnan, None, pd.isnull, pd.isna内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

出处:pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna_python_脚本之家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值