python 值比较判断,np.nan is np.nan 却 np.nan != np.nan ,pandas 单个数据框值判断nan
pandas中DataFrame,Series 都有 isnull()方法,而数据框却没有,用了就会报错:AttributeError: ‘float‘ object has no attribute ‘isnull‘
怎么判断单个框是否为 np.nan
Python常规的判断,==,和is, 这对None是有效的
None is None
Out[49]: True
None == None
Out[50]: True
而对,np.nan,只能用is
da1pd.ix[6000996,u‘团队‘] == np.nan
Out[41]: False
da1pd.ix[6000996,u‘团队‘] is np.nan
Out[42]: True
np.nan != np.nan
Out[43]: True
np.nan也不是None
None == np.nan
Out[46]: False
None!= np.nan
Out[47]: True
None is np.nan
Out[48]: False
这和 is 和==的判断方法不同有关,is 判断是否为同一个对象,比如常量,常量字符串
1 is 1
Out[51]: True
而’== ’ 是值判断,两个变量值是否相等。
u = 156
v = 156
u is v
Out[58]: True
#因为,Python,对变量赋值是用的引用,默认传的是地址,所以,赋的是同一个 对象,也会是 同一个对象
u = 156.0
u is v
Out[60]: False
u == v
Out[61]: True
# 一个赋值整数,一个赋值浮点数时就 不指向一个对象了。 只是值相等而已
回到开始,np.nan 应该是没有值的,所以不能值判断,只用对象引用判断,而None有空值,所以也可以值判断。