Pandas有两个方法:isna()
和isnull()
。我通常使用isnull()
来检测缺失值,从未遇到过必须使用其他方法的情况。
那么,什么时候应该使用isna()
呢?
isnull
是 isna
的别名。在 pandas 的代码源中,字面意思如此:
isnull = isna
确实:
>>> pd.isnull
<function isna at 0x7fb4c5cefc80>
所以我建议使用isna
。
它们两个是相同的。作为最佳实践,始终建议优先使用isna()
而不是isnull()
。
很容易记住isna()
正在做什么,因为当您查看numpy方法np.isnan()
时,它会检查NaN
值。在pandas中有其他类似的方法名称,如dropna()
、fillna()
,处理缺失值时始终能帮助您更容易地记住。
pd.isnull()
/isna
拥有比 np.isnan
更多的功能和不同的行为;它还可以处理非浮点型数据、检测 None
等。 - Marses两者的文档完全相同。
pandas.isna() : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.isna.html#pandas.isna
pandas.isnull() : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.isnull.html#pandas.isnull
在这里,甚至在“另请参阅”章节中,它说DataFrame.isnull是isna的一个别名。
pandas.DataFrame.isnull(): https://pandas-docs.github.io/pandas-docs-travis/generated/pandas.DataFrame.isnull.html#pandas.DataFrame.isnull
因此,它们一定是相同的东西,就像np.nan,np.NaN,np.NAN一样。
isnull
是isna
的别名,所以我更倾向于使用isna
。实际上,isna
似乎比isnull
更常用。 - qsantosnp.nan
和np.isnan()
,但是pandas却是pd.isna()
。 - Deliciouspd.isnull
不同于np.isnan
;pd.isnull
(和isna
)适用于对象数据类型,并且对于None
返回True,因此具有不同的名称是有意义的。 - Marses