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

【Pandas】pandas DataFrame isna

Pandas2.2 DataFrame

Missing data handling

方法描述
DataFrame.fillna([value, method, axis, …])用于填充 DataFrame 中的缺失值(NaN)
DataFrame.backfill(*[, axis, inplace, …])用于**使用后向填充(即“下一个有效观测值”)来填补缺失值(NaN)**的方法
DataFrame.bfill(*[, axis, inplace, limit, …])用于**使用后向填充(即“下一个有效观测值”)来填补缺失值(NaN)**的方法
DataFrame.dropna(*[, axis, how, thresh, …])用于删除包含缺失值(NaN)的行或列的方法
DataFrame.ffill(*[, axis, inplace, limit, …])用于**使用前向填充(即“前一个有效观测值”)来填补缺失值(NaN)**的方法
DataFrame.interpolate([method, axis, limit, …])用于对缺失值(NaN)进行插值填充的方法
DataFrame.isna()用于检测 DataFrame 中缺失值(NaN)的位置的方法

pandas.DataFrame.isna()

pandas.DataFrame.isna() 是一个用于检测 DataFrame 中缺失值(NaN)的位置的方法。它返回一个新的布尔型 DataFrame,其中每个元素表示对应位置的值是否为 NaN


📌 方法签名
DataFrame.isna()

✅ 返回值
  • 返回一个与原 DataFrame 形状相同的布尔型 DataFrame
  • 若某个位置是 NaN,则对应位置为 True
  • 否则为 False

该方法不会修改原始数据。


❌ 注意事项
  • isna() 不支持参数;
  • 它仅用于检测 NaN,不识别 None 或其他空值(如空字符串、0 等);
  • 可以结合 isnull() 使用(二者完全等价);
  • 常用于统计缺失值数量或定位缺失值位置。

🧪 示例代码及结果
示例 1:基本用法
import pandas as pd
import numpy as npdf = pd.DataFrame({'A': [1, np.nan, 3],'B': [np.nan, 2, np.nan],'C': [5, 6, 7]
})print("Original DataFrame:")
print(df)# 检测 NaN 位置
df_isna = df.isna()
print("\nAfter isna():")
print(df_isna)
输出结果:
Original DataFrame:A    B  C
0  1.0  NaN  5
1  NaN  2.0  6
2  3.0  NaN  7After isna():A      B      C
0  False   True  False
1   True  False  False
2  False   True  False

示例 2:统计每列的缺失值数量
# 统计每列 NaN 的数量
nan_count = df.isna().sum()
print("\nMissing value count per column:")
print(nan_count)
输出结果:
Missing value count per column:
A    1
B    2
C    0
dtype: int64

示例 3:统计整个 DataFrame 中的缺失值总数
total_nan = df.isna().sum().sum()
print(f"\nTotal missing values: {total_nan}")
输出结果:
Total missing values: 3

示例 4:筛选出包含缺失值的行
# 筛选至少有一个 NaN 的行
rows_with_nan = df[df.isna().any(axis=1)]
print("\nRows with any NaN:")
print(rows_with_nan)
输出结果:
Rows with any NaN:A    B  C
0  1.0  NaN  5
1  NaN  2.0  6
2  3.0  NaN  7

🧠 应用场景
场景说明
查看缺失情况快速了解哪些位置存在缺失值
统计缺失比例结合 sum()len() 计算缺失比例
过滤含缺失值的行/列使用 df.isna().any() 配合布尔索引
可视化前的数据检查在绘图前确保无缺失值影响图表
预处理流程的一部分作为填充或删除缺失值前的判断依据

⚠️ 补充说明
  • isna()isnull() 完全等价,可互换使用;
  • 对于非浮点类型列(如字符串、整数),若含有 NaN,也会被标记为 True
  • 如果你希望将 None 视为 NaN,可以先使用 df.replace([None], np.nan) 转换。

✅ 总结对比
方法是否推荐使用说明
isna()✅ 推荐更直观地表达“是否为空”
isnull()✅ 推荐isna() 完全相同,兼容性考虑

你可以将 isna() 作为日常数据清洗的第一步,快速掌握数据集中缺失值的分布情况。

http://www.xdnf.cn/news/13243.html

相关文章:

  • 详解pytorch
  • 【学习笔记】虚函数+虚析构函数
  • 半导体设备基本通信标准介绍
  • shell脚本拔高习题
  • Word-- 制作论文三线表
  • SQL SERVER 数据库迁移的三种方法!
  • git clone 时报错超时的问题解决方案
  • 人工智能驱动的企业变革:从智能辅助到战略赋能
  • 【C#】C++的回调函数和C#的事件委托在某些方面有相似之处
  • 前端6月份之前的部分技术更新记录
  • mongDB
  • CentOS7.9 查询运维安全日志,排查恶意用户
  • 用C#实现单向链表和双向链表
  • 《滑动窗口》题集
  • 基于KubeSphere平台快速搭建单节点向量数据库Milvus
  • 【React-router-dom】浅拷贝,查询参数放到路由上
  • vue的这两个特性:数据驱动视图 与 双向数据绑定的区别
  • 工业环境的首选:试验台铁底板稳定性
  • 从设备监控到人员调度,可视化赋能车间全场景
  • 搭建一个springColud 项目,从头开始,里面有订单,库存两个模块
  • LangChain Chat History概念指南
  • 【ModelArts】ModelArts一站式AI开发平台详解(一)
  • 【WiFi扫描相关帧】
  • 条码二维码如何在数字医疗守护安全与效率?
  • 日志收集工具-logstash
  • Echarts大量数据柱图,禁止滑块拖动宽度,以及适配分辨率。
  • CentOS7下的Kafka集群安装部署
  • MongleDB数据库应用
  • 【Flash 芯片 MTD 专栏】Flash芯片识别异常导致mtd子系统分区创建失败
  • 如何判断一个bug,是前端还是后端的?