numpy 中,isnan() 是用来检测数值是否为 NaN 的函数¹。除了 isnan()numpy 还提供了其他一些函数来处理特殊的数值,例如 isinf() 用来检测数值是否为无穷大,isfinite() 用来检测数值是否为有限数⁶。

然而,如果你想要检测的不仅仅是 NaN,还包括其他类型的缺失值,例如 None 或者空字符串,那么你可能需要使用 pandasisna() 函数³⁵。isna() 函数在检查 pandas 数据时会处理各种类型的缺失值标记,如 np.nanNoneNA、空字符串等³⁵。

此外,还有一种 is np.nan 的方法,但这种方法并不推荐使用²。因为 is np.nan 只能判断由 numpy 模块生成的 nan 值,而不能判断由 math 模块生成的 nan 值²。

总的来说,numpy.isnan()pandas.isna()is np.nan 都可以用来检测缺失值,

pandas 中,isna()isnull() 这两个函数的功能是完全一样的,它们都是用来检测数据中是否存在缺失值¹²⁴。这两个函数的存在主要是为了方便用户的使用,你可以根据自己的习惯选择使用哪一个⁴。

这种设计源于 pandas 的历史原因。pandasDataFrame 是基于 R 语言的 DataFrame¹²。在 R 语言中,nanull 是两种不同的概念¹²。然而,在 python 中,pandas 是构建在 numpy 之上的,而 numpy 中只有 NaN(表示“Not a Number”),并没有 nanull¹²。因此,pandas 也沿用了 NaN¹²。

总的来说,无论你选择使用 isna() 还是 isnull(),它们都能正确地帮你检测数据中的缺失值