试图确定pandas.Series中是否存在npy.nan
1.我创建的代码用于复制和测试我要完成的任务:
ser = pnd.Series(['1',None, 2, npy.nan], index=['2001','2002','2003','2004'])
serTest = ser.isin([npy.nan]) == True
分配了
- serTest
2001年错
2002年错
2003年错
2004年真实
2.显示不一致行为的代码:
(数据来自csv文件,世界银行)
我正在尝试从类型为npy.nan的csv文件中读取任何相关值 . 为了验证其类型的相关单元格并解决我遇到的问题,我使用以下代码,其中数据是熊猫系列类型,包含索引(年份)和浮点数(国内 生产环境 总值):
for flt in data:
print('is nan {}'.format(npy.isnan(flt)))
- 切片数据
2006 3.89552e 11
2007 4.25065e 11
...
2014 4.63903e 11
2015年NaN
对于有问题的单元格(2015年GDP),代码返回,这是我所期望的:
is nan True
但是,当我尝试返回一个布尔系列时,比如复制代码,上面的项目符号1,我得到:
2006 False
2007 False
...
2014 False
2015 False
其中2015年应该是真实的,基于数据的2015年NaN值 .
最后的评论,在获得不一致的结果后,即使它在将文件读入pandas.DataFrame时自动分配,在另一种尝试来隔离问题,我通过DataFrame将npy.nan分配给相关单元格 . 刚才提到的结果是一样的 .
请帮忙 . :-)