运行以下代码:
cate=['index_content','emotion_type','ml_type'] data_type_temp=review_mltype[cate].drop_duplicates() data_type_temp
查看data_type_temp数据(DataFrame类型):
可以看到ml_type一列有Nan值,运行data_type_temp[1] is np.Nan
得到结果为False,说明其值不是np里面的Nan,下面试着输出该行值
data_type_temp[1]
可以看到输出失败,错误显示为KeyError:1。下面试着用.dropna()函数来删除包含Nan的列
data_type = data_type_temp.dropna(axis=0) data_type
可以看到包含Nan的行已经被删除,仅剩710列,下面试着进行输出第二行
data_type[1]
发生了很奇怪的事,输出第二行居然显示一样的错误,那么我们如何得到data_type里面第二行某一列的值呢?
我们可以通过得到该行的值然后加下标的方法得到,运行代码data_type.values[1]
可以看到得到了第二行的内容!
至此我们就能知道上面为什么data_type_temp[1] is np.Nan结果为False了,因为得到的是一行的值,而该行只有第三列为Nan,下面进行验证,运行代码data_type_temp.values[1][2] is np.Nan
得到结果
还需要注意的是,当该列不为空时候我们和还可以通过data_type_temp.ml_type[0]求得,得到结果为pos,但是当该列为NaN时候是不能输出的,试运行data_type_temp.ml_type[1]:
可以看到直接报错了。