关于 NaN
首先,在 python 中的空值一般有这几种:
1、None
2、False
3、’’
4、NaN
前三个很正常,当需要判断的时候,用等号=
就好了。但 NaN(not a number),在数学表示上表示一个无法表示的数,而nan则一般表示一个非浮点数(比如无理数)。因此 nan != nan
,并且 NaN 的类型是 float。
Pandas & Numpy 的 NaN 判断
在处理数据集的时候经常遇到如何判断 NaN 的难题,因为简单的对比是不行的,比如:if x == np.nan
。
后来发现 numpy 有个自带方法,numpy.isnan()
。但实际使用时发现它只接受float64
类型的输入,比如字符串或者其他无法被转换成float64
的值就会报错。
最后才发现,pandas 也会自带一个 pandas.isnull()
或 pandas.isna()
方法,不仅可以输入任何类型,并可以直接用于DataFrame,如:pd.isnull(df)
。并且可以吧 None 也识别为 NaN,完美解决。
以上