Amateur Hour

在清洗数据时如何处理 NaN

2019-06-12

关于 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,完美解决。

以上