"isna()" 函数在 Python 中

2024 年 8 月 29 日 | 阅读 3 分钟

Python 中的 **isna() 方法** 是一个强大的数据处理和分析工具箱,在处理 **pandas** 时被广泛使用。 **isna() 函数** 用于查找 pandas **DataFrame** 或 **Series** 中的缺失或空值。

以下是 **isna() 函数** 在各种场景下的用法:

  • 在 DataFrame 中 (DataFrame.isna())

当 **isna() 方法** 应用于 **Pandas DataFrame** 时,它会返回一个具有相同形状的 **布尔值 DataFrame**。 **原始 DataFrame** 中对应的元素在 **生成的 DataFrame** 中显示为 **NaN (不存在)**。 如果元素是 **NaN**,则生成的 DataFrame 中对应的元素为 **True**; 如果**不是**,则为 **False**。

示例代码片段

输出

Column1  Column2
0    False    False
1    False     True
2     True    False
3    False    False
  • 在 Series 中 (Serries.isna())

当 **isna() 方法** 应用于 **pandas Series** 时,它会返回一个 **布尔** 值 Series。 每个结果 Series 的成员表示原始 Series 中对应的元素是否为 **NaN**。

示例

输出

0    False
1    False
2     True
3    False
dtype: bool

说明

在处理 **缺失数据** 时,**isna() 函数** 非常有用,因为它允许您定位 **DataFrame** 或 **Series** 中的 **NaN** 值。 然后,这些信息可用于根据需要处理或操作缺失数据。

  • **DataFrame 输出:** 当 **isna()** 应用于 **DataFrame** 时,新的 **DataFrame** 具有与 **原始 DataFrame** 相同的形状**(行和列)**。 生成的 DataFrame 的值将是布尔值**(True 或 False)**,指示原始 DataFrame 中对应的元素是否缺失。
  • **处理非数字数据:** **isna() 函数** 可以处理数字和非数字数据,例如**文本**或**分类变量**。 Pandas 中缺失的非数字值表示为 **NaN** 或 **None**,**isna() 方法** 可以正确地识别它们。
  • **处理不同的缺失值表示:** 除了 **NaN** 和 **None** 之外,pandas 还识别其他缺失值表示,例如时间戳缺失的 **NaT (Not a Time)** 或日期缺失的 **NaT (Not a Date)**。 **isna() 函数** 旨在处理这些各种形式,并可靠地指示缺失值。
  • **处理时间序列数据中的缺失值:** 在处理**时间序列数据**时,pandas 提供了 **isnull()** 和 **isna()** 等函数。 这两个函数是可互换且等效的。 它们的作用类似于 i**sna() 方法**,都可帮助您识别时间序列数据中的缺失值。
  • 在使用 **isna()** 识别缺失值后,您可以使用其他 pandas 函数来处理或修改它们。 例如,**Dropna()(用于删除包含缺失值的行或列)、fillna()(用于用指定值填充缺失值)** 和 **interpolate()(用于根据现有数据进行插值填充缺失值)**。
  • **计算缺失值:** 除了使用 **isna()** 检查缺失值外,您还可以使用 **sum() 方法** 来统计每列或每行缺失值的数量。

示例

输出

Column1    1
Column2    1
dtype: int64