数据处理时,经常会遇到处理数据中的空值,涉及几个常用函数,pd.isnull(),pd.notnull(),np.isnan(),pd.notna(),pd.isna(),pd.fillna()、pd.dropna()等等.
本文关注pd.isnull(),pd.notnull(),np.isnan(),pd.notna(),pd.isna()。
总结:由下可知,np.isnan()和pd.isnull()都可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,np.isnan()多用于单个值的检验,pd.isnull()用于对一个DataFrame或Series(整体)的检验。
1.pd.isnull()
pd.isnull()可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,pd.isnull()用于对一个DataFrame或Series(整体)的检验。
此外,根据pandas官方文档和源代码,pandas提供的另一个函数pd.isna()与pd.isnull()完全一样。
# 首先创建一个DataFrame:
df = pd.DataFrame({'a':[0,1,2,np.nan]})
df
>>> a
0 0.0
1 1.0
2 2.0
3 NaN
# 测试isnull()
pd.isnull(df)
>>> a
0 False
1 False
2 False
3 True
# 测试isna()
pd.isna(df)
>>> a
0 False
1 False
2 False
3 True
# 测试notnull()
pd.notnull(df)
>>> a
0 True
1 True
2 True
3 False
# 测试notna()
pd.notna(df)
>>> a
0 True
1 True
2 True
3 False
2.np.nan()
判断是否为np.nan()。
np.nan不是一个“空”对象,对某个值是否为空值进行判断,只能用np.isnan(i)函数。
np.nan非空对象,其类型为基本数据类型float。
np.nan()可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,np.nan()多用于单个值的检验。
np.nan == np.nan
>>> False
np.isnan(np.nan)
>>> True
type(np.nan)
>>> float
np.nan is None
>>> False
np.isnan(df)
>>> a
0 False
1 False
2 False
3 True