当前位置: 首页 > news >正文

Python中的缺失值

Python中的缺失值

    • 1、情景描述
    • 2、Python中的缺失值



1、情景描述


在使用Pandas中的文件读取API读取Excel、CSV或TXT等文件时,我们可能需要对读取到的数据进行简单清洗。例如,将其中的表示空值的字符串替换为真正意义上的缺失值

来看一个例子:

data = pd.read_table(path,sep)
data.replace(['Null', 'None', 'NaN'], np.NaN, inplace=True)

上述代码中的Null、None、NaN都是文件中表示空值的字符串,我们使用replace()方法将它们替换为缺失值

实际上,Pandas读取API会自动将一些Python认识的表示空值的字符串解析为缺失值np.NaN,也许上述的replace()方法多余了

那么,到底哪些字符串可以表示Python中的缺失值呢?

2、Python中的缺失值


Python中的缺失值包括但不限于有如下:

import numpy as np
import pandas as pdprint(np.NaN)             # NaN
print(type(np.NaN))       # <class 'float'>
print(pd.isnull(np.NaN))  # True
print(pd.isna(np.NaN))    # Trueprint(np.nan)             # NaN
print(type(np.nan))       # <class 'float'>
print(pd.isnull(np.nan))  # True
print(pd.isna(np.nan))    # Trueprint(pd.NA)              # <NA>
print(type(pd.NA))        # <class 'pandas._libs.missing.NAType'>
print(pd.isnull(pd.NA))   # True
print(pd.isna(pd.NA))     # True# 时间格式的缺失值
print(pd.NaT)             # NaT
print(type(pd.NaT))       # <class 'pandas._libs.tslibs.nattype.NaTType'>
print(pd.isnull(pd.NaT))  # True
print(pd.isna(pd.NaT))    # Trueprint(None)               # None
print(type(None))         # <class 'NoneType'>
print(pd.isnull(None))    # True
print(pd.isna(None))      # True# 空字符串不是缺失值
print('')                 #
print(type(''))           # <class 'str'>
print(pd.isnull(''))      # False
print(pd.isna(''))        # False

经验证,Pandas能自动识别的Python缺失值字符串有:None、NA、nan、NaN、null、NULL、N/A、<NA>、''等,不能自动识别的缺失值字符串有:na、Na、none、Null

因此,情景描述中的NoneNaN字符串无需使用replace()进行替换,而Null需要使用replace()替换,全大写和全小写的NULLnull也无需进行替换

感兴趣的同学快去试试吧


http://www.lryc.cn/news/252132.html

相关文章:

  • JVM 字节码
  • ComfiUI API调用随记
  • Dockerfile讲解
  • Ansible及其优势是什么?
  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备
  • 重塑生成式AI时代数据战略,亚马逊云科技re:Invent大会Swami主题演讲
  • 【恋上数据结构】哈夫曼树学习笔记
  • 前端下拉框select标签的插件——select2.js
  • 【MySQL的基本命令{DML 和 DDL}】
  • unity3d模型中缺失animation
  • 搭建自己的wiki知识库【转】
  • 【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令
  • 谈谈MYSQL索引
  • 线程中出现异常的处理
  • 点击元素以外的事件监听
  • 猫头虎分享ubuntu20.04下VSCode无法输入中文解决方法
  • tcpdump使用心得
  • QJsonObject 是 Qt 框架中用于表示 JSON 对象的类
  • kafka3.6.0部署
  • MybatisPlus批量插入(伪批量),增强为真实批量插入
  • 【零基础入门Python】Python If Else流程控制
  • 新手零基础学习彩铅画,彩铅快速入门教程合集
  • 线程池的拒绝策略
  • Redis7--基础篇5(管道、发布订阅)
  • Unity中Shader指令优化(编译后指令解析)
  • 单个 Zip 文件体积超过 40GB
  • pandas 基础操作3
  • 开发知识点-Maven包管理工具
  • 104. 二叉树的最大深度
  • JAVA毕业设计113—基于Java+Springboot+Vue的体育馆预约系统(源代码+数据库+12000字论文)