美文网首页Python
None、null和NaN

None、null和NaN

作者: Panda_phc | 来源:发表于2020-12-04 09:46 被阅读0次

    注意: 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中的空值

    相关文章

      网友评论

        本文标题:None、null和NaN

        本文链接:https://www.haomeiwen.com/subject/vrymwktx.html