参考链接: Python中的numpy.all

最近在做数据处理的时候,遇到个让我欲仙欲死的问题,那就是数据中的空值该如何获取。

我的目的本来是获取数据中的所有非零且非空值,然后再计算获得到的所有数据计算均值,再用均值把0和空值填上。这个操作让我意识到了i is None/np.isnan(i)/i.isnull()之间的差别,再此做简单介绍:

1.关于np.nan:

先明确一个问题,即空值的产生只有np.nan()一种方法。

# np.nan()的一些奇妙性质:

np.nan == np.nan

>>> False

np.isnan(np.nan)

>>> True

np.nan is None

>>> False

type(np.nan)

>>> float

总结一下:

np.nan不是一个“空”对象,用 i is None判断是False;对某个值是否为空值进行判断,只能用np.isnan(i)函数,万万不可用 i == np.nan()来做,否则你会死的很惨的,因为空值并不能用判断相等的“==”正确识别(上例前两条);np.nan非空对象,其类型为基本数据类型float(是不是很神奇,我也不知道为什么要这样设计)

2.np.isnan()和pd.isnull()何时使用:

# 首先创建一个DataFrame:

bb = pd.DataFrame({'a':[0,1,2,np.nan]})

bb

>>>     a

0    0.0

1    1.0

2    2.0

3    NaN

# 先测试一下np.isnan()

np.isnan(bb)

>>>     a

0    False

1    False

2    False

3    True

# 值得一提的是,如果想获悉整个DataFrame有无空值,可以在此基础上这样做:

np.isnan(bb).all()

>>> a    False

dtype: bool          # 这行是指返回值的dtype

# 再测试一下isnull()

pd.isnull(bb)

>>>     a

0    False

1    False

2    False

3    True

由上可见,其实np.isnan()和pd.isnull()都可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,np.isnan()多用于单个值的检验,pd.isnull()用于对一个DataFrame或Series(整体)的检验。

此外,根据pandas官方文档和源代码,pandas提供的另一个函数pd.isna()与pd.isnull()完全一样。

上面提到的any()/all()函数,请见pandas文档:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.all.html#pandas.DataFrame.all

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.any.html#pandas.DataFrame.any

其他与空值检测或删除相关的函数还有:notna()、fillna()、dropna()等等。实战中应灵活使用。

[转载] 用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())相关推荐

  1. numpy给数据新增一个维度np.newaxis及其使用场景

    numpy给数据新增一个维度np.newaxis及其使用场景 a = [10,20,30,40,50] a = np.array(a)print(a.shape) a = a[:, np.newaxi ...

  2. Python处理数据中的空值(缺失值)时用到的dropna()函数和fillna()函数总结,通过示例弄懂这两个函数的用法。

    引言:在用python处理数据时,我们通常会遇到数据不完整的情况,比如有空值的时候,我们想要删除控制所在的行或列,或者是我们给空值设置为某一个值.这时候就可以用dropna和fillna两个函数来实现 ...

  3. 数据分析实际案例之:pandas在餐厅评分数据中的使用

    文章目录 简介 餐厅评分数据简介 分析评分数据 简介 为了更好的熟练掌握pandas在实际数据分析中的应用,今天我们再介绍一下怎么使用pandas做美国餐厅评分数据的分析. 餐厅评分数据简介 数据的来 ...

  4. python效率numpy_Python数据处理性能对比,原生,Pandas,Numpy哪个更优秀

    原标题:Python数据处理性能对比,原生,Pandas,Numpy哪个更优秀 今天为大家分享一个关于数据处理性能的对比,从原生,Pandas ,Numpy这三个方面对比?你觉得哪个更优秀呢?对于一个 ...

  5. Python数据处理性能对比,原生,Pandas,Numpy哪个更优秀

    https://blog.csdn.net/sinat_38682860/article/details/85765308 今天为大家分享一个关于数据处理性能的对比,从原生,Pandas ,Numpy ...

  6. Python中用pandas将numpy中的数组数据保存到csv文件

    Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...

  7. Pandas+Numpy 数据中空值的处理操作:判断、查找、填充及删除

    本文整理了数据中空值的处理操作,主要内容如下: 判断数据中是否有空值 统计空值/非空值数量 根据空值筛选数据 查找空值索引 删除空值 dropna()函数 填充空值fillna()函数 为了便于描述, ...

  8. python处理表格数据教程_用Python的pandas框架操作Excel文件中的数据教程

    引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要.作为额外的福利,我将会进行一些 ...

  9. Pandas的学习(5.pandas中处理丢失数据和空值数据以及填充空值数据)

    处理丢失数据 有两种丢失的数据:        --  None        --  np.nan(NaN) 1.None None是Python自带的,其类型为python object.因此,N ...

最新文章

  1. Android 图形驱动初始化
  2. dreamweaver连接mysql数据库 发生一个不知名错误_用DREAMWEAVER连接数据库测试时总是弹出发生一个不知名的错误 你好! 请问一下这个问题你是怎么解的?...
  3. nginx php iconv,Nginx +PHP部署一
  4. AUTOSAR从入门到精通100讲(125)-详解车载网络 OTA系统的开发
  5. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
  6. 基于mapreduce的购物篮分析算法实现
  7. iOS The binary you uploaded was invalid
  8. 细说PHP(精要版)
  9. axure原型设计:手机版可视化图表
  10. ArcGIS中的北京54和西安80投影坐标系详解
  11. 【英语语法入门】 第14讲 副词
  12. SPRD平台功耗调试分享
  13. SpringBoot整合EasyExcel实现Excel表格的导出功能
  14. 如何通俗的理解机器学习中的VC维、shatter和break point?
  15. 玛雅日历转化(Maya calendar,POJ1008, UVA300)
  16. matlab 集群搭建,MATLAB 科学计算工作站及集群配置方案
  17. JavaScript经典效果集[蓝色理想]
  18. 常见安全漏洞及其解决方案
  19. 鸡汤来喽游戏制作C++(demo版)
  20. 不会编程,别着急!免编程工具助你快速开发App

热门文章

  1. linux系统给串口权限,让ubuntu串口和USB设备不用root权限访问
  2. Python入门--方法重写
  3. wxpython制作表格界面_Python wxPython库使用wx.ListBox创建列表框示例
  4. 教程:Visual Studio 连接 MySQL 数据库(包含常见错误及解决方法)
  5. 基于关系域演算的QBE语言
  6. bzoj 3379: [Usaco2004 Open]Turning in Homework 交作业(区间DP)
  7. ZOJ 3993 2017CCPC秦皇岛 M:Safest Buildings
  8. python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端
  9. jquery创建添加append、prepend、appendTo、prependTo、after、insertAfter、before、insertBefore
  10. -函数-MATLAB提供的函数/主子函数/匿名-嵌套函数