目录
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
pd.isnull 和 pd.isna
代码示例
只可以用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的文章就介绍到这了,更多相关 np.nan, np.isnan, None, pd.isnull, pd.isna内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!
您可能感兴趣的文章:
- Python Numpy:找到list中的np.nan值方法
- 如何将numpy二维数组中的np.nan值替换为指定的值
- 使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
- numpy中np.nanmax和np.max的区别及坑