Pandas 模块-操纵数据(9)-分清楚 None 和 NaN 值,处理好 NaN 值

目录

9. 分清楚 None 和 NaN 值,处理好 NaN

9.1 分清楚 None 和 NaN 值

9.1.1 Python 中特殊的常量 None

9.1.2 numpy 模块引入的特殊常量 NaN

9.2 判断是否是 NaN还是 None,.isnull()、.notnull()、.isna()、

.notna() 都无效

9.2.1 .isnull() 和 .notnull() 使用方法,不区分 NaN 和 None值

9.2.2 .isna() 和 .notna() 使用方法,也不区分 NaN 和 None 值

 9.2.3 区分 np.NaN 和 None 值

 9.2.4 Pandas 模块为什么很多函数不区分 np.NaN 和 None 值?

9.3 丢弃有 NaN 的数据项,.dropna()

9.3.1 .dropna() 语法

9.3.2 .dropna() 范例

9.4 将 NaN 填充为其他值,.fillna()

9.4.1 .fillna() 语法

9.4.2 .fillna() 范例

9.5 统计数据量大时统计 NaN 的个数 .isnul().sum().sum()

9.6 统计数据量大时统计非 NaN 的个数 .count().sum()


9. 分清楚 None 和 NaN 值,处理好 NaN

9.1 分清楚 None 和 NaN 值

9.1.1 Python 中特殊的常量 None

None 和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。

可以看到,它就是 None 类型,也是 None 对象。

 

可以用 is,not is,或者 == 去判断某个值是不是 None。

9.1.2 numpy 模块引入的特殊常量 NaN

首先,numpy 模块中有三个常量 np.NAN 、np.nan 、np.NaN,这三个常量其实是一个东西。后面我们就只说 np.NaN 即可。

 np.NaN 可以解释为 not a number,不是一个数字,但是它的类型却是一个 float 类型!

所以可以看出,None 和  np.NaN 类型就不一样!但是在 Pandas 模块中,有些地方他们都被视作表示空值,处理起来的结果也是一样的。

9.2 判断是否是 NaN还是 None,.isnull()、.notnull()、.isna()、

.notna() 都无效

9.2.1 .isnull() 和 .notnull() 使用方法,不区分 NaN 和 None值

.isnull() 和  .notnull() 是一对判断对象是不是丢失数据的函数,但是可惜的是它们不区分 NaN 和 None 值,对这两者的操作结果是一样的。

Help on function isna in module pandas.core.dtypes.missing:

isna(obj)
    Detect missing values for an array-like object.
    
    This function takes a scalar or array-like object and indicates
    whether values are missing (``NaN`` in numeric arrays, ``None`` or ``NaN``
    in object arrays, ``NaT`` in datetimelike).
    
    Parameters
    ----------
    obj : scalar or array-like
        Object to check for null or missing values.

9.2.2 .isna() 和 .notna() 使用方法,也不区分 NaN 和 None 值

.isna() 和 .notna() 也是一对判断对象是不是丢失数据的函数,但是可惜的是它们不区分 NaN 和 None 值,对这两者的操作结果也是一样的。这对函数看起来和 .isnull() 和 .notnull() 用途是一样的。

Help on function isna in module pandas.core.dtypes.missing:

isna(obj)
    Detect missing values for an array-like object.
    
    This function takes a scalar or array-like object and indicates
    whether values are missing (``NaN`` in numeric arrays, ``None`` or ``NaN``
    in object arrays, ``NaT`` in datetimelike).
    
    Parameters
    ----------
    obj : scalar or array-like
        Object to check for null or missing values.
    
    Returns
    -------
    bool or array-like of bool
        For scalar input, returns a scalar boolean.
        For array input, returns an array of boolean indicating whether each
        corresponding element is missing.

 9.2.3 区分 np.NaN 和 None 值

区分 np.NaN 和 None 值,只能依靠 is,not 命令和 == 了。

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值