本文目录一览:
- 1、请教python里有NaN这个东西吗
- 2、在使用python中的concat 函数时,有一个数据显示nan 是怎么回事?
- 3、认识python中的inf和nan
- 4、数据库中的空值与NULL的区别以及python中的NaN和None
请教python里有NaN这个东西吗
Python 中表示 Not A Number 使用小写的 nan
可以这样定义一个 nan
a = float('nan')
或者
from decimal import Decimal
a = Decimal('nan')
最常见的计算有 无穷大 减 无穷大 结果为 nan
float('inf') - float('inf')
判断一个数是不是 nan
import math
print(math.isnan(a))
nan 和 nan 的比较关系是 nan != nan
所以如果一个数 自身不等于自身 也可以判断为 nan 类型
另外 numpy 里也有 NaN 的类型,不过不属于 Python 原生就不说了
在使用python中的concat 函数时,有一个数据显示nan 是怎么回事?
说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或None值引起的。
解决办法是把样本数据中包含nan值的数据剔除,
或者如果样本数据都是数值的话可以把nan值都改成0。
认识python中的inf和nan
认识python中的inf和nan
python中的正无穷或负无穷,使用float("inf")或float("-inf")来表示。
这里有点特殊,写成:float("inf"),float("INF")或者float('Inf')都是可以的。
当涉及 和 比较时,所有数都比无穷小float("-inf")大,所有数都比无穷大float("inf")小。
相等比较时,float("+inf")与float("+inf")、float("inf")三者相等。即:
同样地,float("-inf") == float("-inf") 返回也是True。
简单的加,减,乘操作,还是会返回无穷。
特别地,0 * float('inf') 结果为:nan
float('inf') / float('inf') 结果为:nan
float('inf') - float('inf') 结果为:nan
float('-inf') - float('-inf') 结果也为:nan
nan代表Not A Number(不是一个数),它并不等于0
因为nan不是一个数,所以相关计算都无法得到数字。
所有涉及nan的操作,返回的都是nan。
结果都是:nan
比较操作时,返回的都是False
特别注意两个float('nan')并不相等!
python中可以用math.isinf()与math.isnan()来判断数据是否为inf或nan。
numpy中也有相类似的方法可用来判断数据。
动手测试题:
0 / float('inf') == 0 / float('-inf') 结果是True 还是False?
参考资料:
Python 关于正负无穷float(‘inf’)的一些用法
Stackoverflow.com上的问答:What is inf and nan?
数据库中的空值与NULL的区别以及python中的NaN和None
null表示:不可用、未赋值、不知道、不适用,它既不是0也不是空格。记住:一个数值与null进行四则运算,其结果是null
空值和null的区别在于,在做count计算的时候:count(field_name),field_name的值为空值也会被计算在里面(这一行统计有效),而null不会
python有两种方式获取数据:
1.
一种是把数据从mysql
中导出到txt或者csv,然后本地读取;
2.
另一种是python直接链接数据库,读取数据;
第一种把数据从mysql导出后,python读取时,空值和null在文件中都为null;python读取之后为nan
第二种链接数据库后,python能读取表结构,数据库的null对应列表中的none以及pandas中的nan(如果字段类型是时间,则为nat)。而数据库中的空字符,则被识别为空字符。