注意: python中没有null,但是有和其意义相近的None。
1、None
None
表示空值,它是一个特殊 Python 对象, None的类型是NoneType
。
None
是 NoneType 数据类型的唯一值,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。
>>> type(None)
<class 'NoneType'>
该对象在Python解释器启动时自动创建,解释器停止时销毁。
特征
- None 不支持任何运算
- None 和任何其他的数据类型比较永远返回False
- None 有自己的数据类型NoneType,不能创建其他NoneType对象(它只有一个值None)
- None 与0、空列表、空字符串不一样
- 可以将None赋值给任何变量,也可以给None值变量赋值
- None是没有像len,size等属性的,要判断一个变量是否为None,直接使用
>>> None == 0
False
>>> None == ''
False
>>> None == False
False
>>> dir(None)
['__bool__',
'__class__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__']
作为没有return关键函数的返回值
对于所有没有 return 语句的函数定义,Python 都会在末尾加上 return None,使用不带值的 return 语句(也就是只有 return 关键字本身),那么就返回 None。
>>> def function():
print('hanshu')
result = function()
print(result)
hanshu
None
2. NaN
当使用Numpy或者Pandas处理数据的时候,经常会遇到条目中没有没有数据,然后当我们在去打印的时候就会出现NaN。
- NaN是没有办法和任何数据进行比较
- 它和任何值都不相等,包括他自己。
- 它的类型是float,但是和任何值做计算的结果都是NaN
import pandas as pd
df = pd.read_excel('/Users/mac/Desktop/test.xlsx',header=None)
df
0 1 2
0 1 2.0 3
1 4 NaN 6
2 7 8.0 9
原数据为下图:
Xnip2020-12-03_14-36-57.png
>>> num = df.loc[1,1]
>>> num
nan
>>> result = num + 2
>>> result
>>> nan
个人理解的等式
- NULL(数据库)=None(python列表)=NaN(pandas)
- 空字符(数据库)=空字符(python列表)=空字符(pandas)
- 从csv中获取数据时:空值(csv)=NULL(数据库)=NaN(pandas)
- 转为csv数据时:数据库中的NULL\空字符和pandas中的NaN\空字符,都变成csv中的空值
网友评论