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

【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() 作为日常数据清洗的第一步,快速掌握数据集中缺失值的分布情况。

相关文章:

  • 多光谱图像技术在苗期作物与杂草识别中的研究进展
  • OkHttp 中实现断点续传 demo
  • gRPC、WebSocket 与 HTTP 的核心区别对比
  • 【JavaScript】 HTTP Cookie 核心知识梳理与常用的封装实现
  • 学校招生小程序源码介绍
  • c++中类的继承
  • 0610_特性和反射_加密和解密_单例模式
  • Playwright 与 Selenium:自动化测试的两大主流工具对比
  • Kubernetes 从入门到精通-pod基础管理
  • 饿一饿对肝脏好
  • ETL中图表统计分析模版组件使用
  • Java设计模式基础问答
  • 设计模式和设计原则回顾
  • C#设计模式
  • QMC5883L的驱动
  • 深入解析 GitHub Token 与 NPM Token:自动化发布的完整指南
  • pnpm install 和 npm install 的区别
  • Java如何权衡是使用无序的数组还是有序的数组
  • oracle 安全基线配置
  • MySQL主从复制实现指南
  • 江苏两学一做网站/东莞网络营销代运营
  • 网站自动识别手机代码/如何自建网站
  • 请人做竞价网站的要求重点/nba最新交易信息
  • 建站之星服务器/每天看七个广告赚40元的app
  • 网站banner代码/如何在google上免费推广
  • 网站如何做点击链接/学做电商需要多少钱