python中None和NaN比较

在pandas中, 如果其他的数据都是数值类型, pandas会把None自动替换成NaN, 甚至能将s[s.isnull()]= None,和s.replace(NaN, None)操作的效果无效化。 这时需要用where函数才能进行替换。

None能够直接被导入数据库作为空值处理, 包含NaN的数据导入时会报错。

numpy和pandas的很多函数能处理NaN,但是如果遇到None就会报错

None和NaN都不能被pandas的groupby函数处理,包含None或者NaN的组都会被忽略。

总之,None是python自带的,而NaN则是被numpy和pandas所支持的

等值性比较的总结:(True表示被判定为相等)
在这里插入图片描述
在Dataframe和Series中可以用isna或者notna判断是否是NAN

由于等值性比较方面,None和NaN在各场景下表现不太一致,相对来说None表现的更稳定。

为了不给自己惹不必要的麻烦和额外的记忆负担。 实践中,建议遵循以下三个原则:
1.在用pandas和numpy处理数据阶段将None,NaN统一处理成NaN,以便支持更多的函数
2. 如果要判断Series,numpy.array整体的等值性,用专门的Series.equals,numpy.array函数去处理,不要自己用==判断  
3. 如果要将数据导入数据库,将NaN替换成None

参考链接:
https://blog.csdn.net/weixin_43746235/article/details/86296140?utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/zn505119020/article/details/78530827

NaN和None互换的方法:
https://www.jb51.net/article/149749.htm

发布了69 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41636030/article/details/104402962
今日推荐