None 和 NaN分不清? pandas 难点彻底搞懂

Pandas 和 Numpy 是数据挖掘和数据科学中广泛使用的工具,但有时人们会对 None 和 NaN 感到困惑,它们非常相似但略有不同的数据类型。 在这里,我们通过一些示例彻底把问题弄清楚。

主要区别

Pandas 中 None 和 NaN 的区别可以总结为:

动手测试

在下面的测试中,None 值会自动转换为 NaN 值,因为该list中的其他数值是数字, Pandas 自动将 None 转换为 NaN。NaN类型对于很多算术操作来更简单,因此被优先考虑。

import pandas as pd
pd.Series([1,None])
0    1.0
1    NaN
dtype: float64

在下面的测试中,该list系列中的另一个值是一个字符串,因此 None 值保持为 None 值。 这使得整个系列对象类型。

import pandas as pd
pd.Series(["1",None])
0       1
1    None
dtype: object

None 类型会导致更多的数值操作错误

为什么我们说,使用 NaN 类型对于许多常用操作会更有利?
因为NaN对许多算术运算来说是合法的。 例如,下面涉及None的操作会报错:

None + 1

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
</module></ipython-input-8-3fd8740bf8ab>

但如果是NaN类型,就不会报错。

import numpy as np
np.nan + 1
nan

怎么查看dataframe中的数值是None或者NaN

有几种不同的方法可以检查数据类型是 None 还是 NaN 值;
首先可以使用 numpy,函数 np.isnan() 可以检查一个值是否为 NaN 值,但它不适用于 None 值。

np.isnan(np.nan)
True

零一方法,在 Pandas 中,有 isnull() 和 isna() 两个函数,它们实际上是同样的函数。 isnull() 只是 isna() 方法的别名; 基本上 isnull() 可以用来检测缺失值,因此 nan 或 None 都将为 True。

pd.isnull(np.nan)
True
pd.isnull(None)
True

Original: https://blog.csdn.net/robot_learner/article/details/126535158
Author: robot_learner
Title: None 和 NaN分不清? pandas 难点彻底搞懂

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/752636/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • numpy 产生随机数方法总结

    在矩阵应用的过程中,经常需要使用随机数,那么怎么使用numpy 产生随机数呢 ,为此专门做一个总结。 numpy.random.seed(n) 其中n为任意指定 当我们设置相同的s…

    Python 2023年8月23日
    038
  • 云服务器下django的uwsgi + nginx部署

    uwsgi安装 默认uwsgi安装后会启动 pip install uwsgi &#x91CD;&#x542F;uWSGI&#x670D;&#x52…

    Python 2023年8月6日
    037
  • scrapy基础知识

    scrapy基础 * – 基本的案例: – JsonItemExporter和JsonLinesItemExporter:(items类型简单存json) …

    Python 2023年10月3日
    076
  • Python词云图的几种制作方法

    一、词云图词云图是一种用来展现高频关键词的可视化表达,通过文字、色彩、图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息。词云就是通过形成”关键词云层&#82…

    Python 2023年8月1日
    033
  • 吴恩达《深度学习》笔记汇总

    [ 吴恩达深度学习_5.1是指 _吴恩达_教授所授课程中的第5.1版本,这个版本的最后修改时间是2017年12月20日。该版本是根据视频课程制作的PDF版本 _笔记,涵盖了 神经网…

    Python 2023年9月30日
    045
  • Python迷宫生成器

    作为一项古老的智力游戏,千百年来迷宫都散发着迷人的魅力。但是,手工设计迷宫费时又耗(脑)力,于是,我们有必要制作一个程序:迷宫生成器…… 好吧,我编不下去了…

    Python 2023年11月2日
    040
  • 【Linux】一文掌握Linux基本指令(下)

    本章命令大致总结 命令功能cat打印文件内容echo打印文件内容> 输出重定向 追加重定向< 输入重定向 more 查看文本内容 less等价于morehead打印文本…

    Python 2023年11月5日
    034
  • ChatGPT 背后的“功臣”——RLHF 技术详解

    OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮,它面对多种多样的问题对答如流,似乎已经打破了机器和人的边界。这一工作的背后是大型语言模型 (Large Lan…

    Python 2023年11月4日
    036
  • pygame精灵组有哪些方法_PyGame获取精灵组

    这里有一个较长的例子来说明一个有墙的工作游戏:# Sample Python/Pygame Programs Simpson College Computer Science ht…

    Python 2023年9月23日
    042
  • Linux安装Anaconda教程

    1. 首先上Linux官网下载最新 对应版本 的Anaconda安装包 链接: Anaconda官网下载 2. 因为我们是在Linux系统下安装Anaconda,所以选择Linux…

    Python 2023年8月1日
    055
  • ImGUI 1.87 绘制D3D外部菜单

    ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具包一起使用,I…

    Python 2023年6月11日
    058
  • 车道线检测——概述

    注:部分信息借鉴互联网,感谢相关作者分享。 目录 背景 难点 数据集 算法 指标 车道线检测传统算法思维导图 CVRP2022及历年车道线检测算法和论文 *背景 车道线检测是一个基…

    Python 2023年10月8日
    069
  • 利用python进行数据分析——数据过滤、清洗、转换等

    一、移除重复数据 DataFrame.duplicated() DataFrame.drop_duplicates() 1. duplicated() 返回bool序列,标识是否重…

    Python 2023年8月6日
    033
  • Python pandas 按行、按列遍历DataFrame

    在对DataFrame数据进行处理时,存在需要对数据内容进行遍历的场景。因此记录一下按照行,列遍历的几种方式。 1. 使用loc或iloc方法 loc:表示location,填写内…

    Python 2023年8月17日
    051
  • pandas的一些用法

    pandas的一些常用方法和遇到的小问题 1. pandas读取json文件 2.pandas日期转换 3.pandas写入csv格式文件出现中文乱码问题解决方法 4. pd.Da…

    Python 2023年8月7日
    057
  • 创造虚拟环境报错An unexpected error has occurred. Conda has prepared the above report.解决方案

    一、创造一个虚拟环境报错: An unexpected error has occurred. Conda has prepared the above report. Uploa…

    Python 2023年8月3日
    0137
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球