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

2024-04-18 0 168
目录

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

np.nannot a membernan的含义是“not a number“,它是对array中缺失的数值的占位符type 为 float因为代表缺失的数值,np.nan的type是float可参与计算np.nan的type是float,所以np.nan可参与计算,且占主导地位,也就是算出的值都为np.nan不等于自身如果用np.nan==np.nan,会发现返回的结果为False,如果用np.nan in array,也不能发现array中是否包含np.nannp.isnan判断是否存在np.nannp.nan因为没有等于的概念,所以要判断是否存在np.nan,只可以用np.isnan来判断np.isnan只可以判断数值型如果用np.isnan对其余type的array判断,会报错,np.isnan只可以判断数字型array
忽略np.nan的numpy计算nansum()nanmax()nanmin()nanargmax()nanargmin()

nan和None

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

None

NoneNoneTypeNone的type为NoneType,是python内置的不可参与计算None不可参与计算,否则报错None is None 或者 None==None这两种方式返回值都是True

pd.isnull 和 pd.isna

pd.isnull pd.isnapd.isnull 和 pd.isna是同一个东西用命令pd.isnull==pd.isna,会发现返回值为TrueNone和np.nan在pandas中都是缺省值None和np.nan都会被pd.isnull或者pd.isna判断为True可以判断List或者单独一个值pd.isnull和pd.isna的判断对象可以为一个值或者一个listpandas中缺省值不参与计算当使用df.min()等计算时,会发现缺省值不参与计算

代码示例

只可以用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, np.isnan, None, pd.isnull, pd.isna

在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的区别及坑

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Python pandas缺失值np.nan, np.isnan, None, pd.isnull, pd.isna https://www.u-9.cn/jiaoben/python/186919.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务