我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

本文旨在阐述 空值:None、NULL 以及 空字符串: “” 之间的异同点,并探讨它们彼此间的关联性。

具体的实验环境为.7、.0、

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

为什么需要搞清楚None、NULL和空字符“”?

实际上,不论从事数据分析或数据科学相关岗位,抑或是普通办公人员运用数据资料

我们时常要实现数据在、SQL数据库、CSV或EXCEL文件间的转换迁移

而数据天生就是混乱的,复杂的,总是伴随着异常值和特殊值。

因此,这三个特殊值的出现,是无法避免的,偶尔还会在同一批数据里集中发生。

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

此外,这三个事物在诸如MySQLExcel等不同应用场景下,其认知视角和构建方式也互有差异,各有千秋

常常导致这些信息,在信息处理时出现前后矛盾的情况,并且引发各种异常错误问题。

所以针对这些,操作时必须格外谨慎,力求防止将来数据保存和运算产生问题!

下面老海从三个角度来解释一下:

通过一张图可以完全理解,None、NULL、空字符串在SQL和EXCEL中的全部规范

具体规则见下图:

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

一张图直观解释

网上关于它们的解释说法很多,说实话有些眼花缭乱了。

我自己整理一个简化的表格,这样看起来直观多了。

注意三点:

下面我们通过具体的数据案例来实验一下:

从excel、mysql数据库对比来看

先来观察一下None、NULL以及空白字符串在从Excel转换到数据库的过程中会出现什么情况,再看看它转换回Excel时又会变成什么样子

首先在excel中原始数据如下:

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

存储在xlsx中,版本

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

性别信息里面,存在一个空白文本和一个缺失数据;年龄数据里面,也存在一个空白文本和一个缺失数据

其次,将excel数据导入到mysql中

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

可以发现excel中的空值,在数据库中显示Null

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

而空字符显示为空白,空数值显示为0(与数据库设置有关)

然后,我们把从数据库导出数据到CSV中

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

数据库里的空值在转换成CSV文件后,会变成空白,而其他数据保持原样

加入、后再来看一下

首先,看看中空值表达

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

空值有多种形式,比如None、NaN和空白字符串,它们在外观上看似相同,但本质上各自属于不同的数据类型

None是一个空值,即空对象,它里一个特殊的值

零不等于空值,零代表有具体数值;空值是特殊标记,空值不同于空白文本。

NaN,是numpy特有的数据类型,属于浮点数类别,用于标示数据中的缺失情况

而“”,是空字符的表示。

再次,中没有看到NULL

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

实际情况是,null 与 NULL 在数据库中均代表空值,它们并非真实存在的对象。

或许不少文献将空值纳入阐述范围,这种做法实在难以自圆其说

如果直接将xlsx文件读取到中

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

我们注意到表格里的空白项和空白文本,都转换成了NaN的缺失数据形式!需要留意的是,此刻并没有显现出None的空对象

如果从导出到xlsx文件中

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

能看出来里面存在NaN,在Excel里呈现为空白,没有任何信息。

那中数据转为会发生什么?

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

中的空值转换成了数组里的缺失数据,不再以空值形式呈现

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

中的空字符“”,转为后统一显示为 ''

将数据库中导出CSV,读取到后会怎样?

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

数据库中的空值和空字符,均显示为NaN

直连数据库,读取到后会怎样?

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

数据库里的空值,在界面全部呈现为空;而空白文本,形态未变仍是空引号

那对数据库读取的数据有怎么样的转化规则?

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

转换数据表里数值型列的空值标记为特殊值,非数值列的空值标记维持原样

在统计数量时,要排除掉不存在值和缺失值,但要把空白字符串包含在内

而进行sum计算时,会同时排除掉NaN和None。

中如何判断空值类型,又如何转化None和NaN呢?

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

通常情况下,我们可以借助,()和isna()来直接进行判断,这两个函数会将None和NaN都识别为空值含义。

mysql将字符串转换成浮点精确2位_None NULL 空字符 Python MySQL Excel 数据处理

许多函数在处理时不能接受None作为输入,因为系统倾向于把None值替换成NaN。

经过一番周折,实验工作到此告一段落,概括而言,辨别它们相当费神,同时存在诸多棘手局面,又需应对少数特殊状况,因此老海不再逐项详述。

总而言之,在具体操作时,老海主张遵循三条原则,以便确保极端情况下的数据统一

None NULL 空字符 Python MySQL Excel 数据处理_mysql将字符串转换成浮点精确2位

获取数据之后,我们立刻将空白符号换成None、NaN或者NULL

规则二:在运用或者numpy的过程中,我们一致把空值换成非数

法则3:在数据导入数据库时,我们将NaN统一替换为None

这些规则源自于处理特殊情况的经验积累,并非普遍适用,好处在于方法简明扼要容易记住,同时有助于减少后续数据转换可能引发的问题。

好了,今天就此结束。若对老海的讲述感兴趣,欢迎点赞评论和扩散,我是一名信息萃取者,老海

二维码
扫一扫在手机端查看

本文链接:https://www.by928.com/shan-xi/12280.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线