空值判断:Nan、None、NaT、Null、空字符串
常见问题:在数据分析过程中难免会遇到数据缺失的情况,其对象可能是单个变量或是整体的series、Dataframe,下面就来讨论下具体的几种情况:
dt.dtypes
#运行结果:
idcard object
sex float64
cap object
time datetime64[ns]
dtype: object
idcard | sex | cap | time | |
---|---|---|---|---|
0 | 01231 | 1.0 | 教学部 | NaT |
1 | 01232 | 0.0 | 教务部 | 2010-03-06 |
2 | None | NaN | 2021-03-09 |
对整体的series或Dataframe判断是否未空,用isnull()或isna(),不适用于空字符串
print(len(dt[dt['idcard'].isnull()]))
print(len(dt[dt['sex'].isnull()]))
print(len(dt[dt['cap'].isnull()]))
print(len(dt[dt['time'].isnull()]))
#运行结果
1
1
0
1
print(len(dt[dt['idcard'].isna()]))
print(len(dt[dt['sex'].isna()]))
print(len(dt[dt['cap'].isna()]))
print(len(dt[dt['time'].isna()]))
#运行结果
1
1
0
1
NaN
NaN是numpy\pandas下的,不是Python原生的,Not a Number的简称。
数据类型是float
from numpy import NaN
print(type(NaN))#float
对单独的某个值判断,可以用 np.isnan()
for i in range(len(dt)):
print(np.isnan(dt.loc[i,'sex']))
#运行结果:
False
False
True
None
None是一个python特殊的数据类型,None不同于空列表和空字符串,是一种单独的格式。
print(type(None))
#运行结果
NoneType
对于单独的某个值判断,可以用is None、not()(bool类型值不适用)
for i in range(len(dt)):
print(not(dt.loc[i,'idcard']))
#运行结果:
False
False
True
for i in range(len(dt)):
print(dt.loc[i,'idcard'] is None)
#运行结果:
False
False
True
NaT
非时间空值,Not a Time.
该值可以存储在 datetime 数组中以指示未知或缺失的 datetime 值。NaT 返回一个 (NaT) datetime 非时间标量值。
Null
在Python中没有这个NULL,NULL主要是在C语言中,在Python中对应的就是None
空字符,数据类型是字符串
空字符串
对单独的某个值判断,可以用len()、not()(bool类型值不适用)
for i in range(len(dt)):
print(not(dt.loc[i,'cap']))
#运行结果:
False
False
True
for i in range(len(dt)):
print(dt.loc[i,'cap'] is None)
#运行结果:
False
False
True
上一篇: 几秒钟就充满电!科学
下一篇: 暂无数据