上一篇文章,老海分享了关于Pyhon类和对象的白话理解
本篇我想分享一下 空值:None、NULL 与 空字符: “” 的区别和联系
具体的实验环境为Python3.7、mysql8.0、Excel2016
为什么需要搞清楚None、NULL和空字符“”?其实,无论作为数据分析、数据科学工作者,还是日常职场人士处理数据时
我们经常需要将数据在Python、SQL数据库、CSV/EXCEL文件之间来回导出导入
而数据天生就是混乱的,复杂的,总是伴随着异常值和特殊值。
所以出现这三个特殊值的情况,在所难免,有时甚至同时出现在同一组数据当中。
加之三者在不同环境下比如python、mysql、excel中,理解角度和设计逻辑各有不同,
往往会造成这些数据,在数据处理中前后不一致、各种奇怪BUG报错发生。
因此对于它们,我们处理时一定要特别小心,尽量避免后续数据存储和计算出现麻烦!
下面老海从三个角度来解释一下:
一张图看透,None、NULL、空字符在Python、SQL、EXCEL中的整体规则具体规则见下图:
一张图直观解释
网上关于它们的解释说法很多,说实话有些眼花缭乱了。
我自己整理一个简化的表格,这样看起来直观多了。
注意三点:
- pandas中时间型数据的空值,显示为NaT,含义与NaN相同
- Exel中的空值表示,就是空,没有什么特别字符来表达
- NULL只出现在数据库数据中,Python中没有这个东西!
下面我们通过具体的数据案例来实验一下:
从excel、mysql数据库对比来看我们先看一下None、NULL和空字符“”在Excel与数据库之间切换时是如何变化的
首先在excel中原始数据如下: