最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python3如何检测空值

    正文概述    2020-04-03   224

    python3如何检测空值

    pandas 空值定义为numpy.nan

    1、对整体的series或Dataframe判断是否未空,用isnull()
    eg: 
    pd.isnull(df1) #df1是dataframe变量
    2、math.isnan() 可以判断np.float64类型的空
    3、pd.isna() 直接判断一列
    4、对单独的某个值判断,可以用 np.isnan() 
    eg: np.isnan(df1.ix[0,3]) #对df1的第0行第3列判断

    # 关于NaN的判断

    python在数据预处理的时候,经常遇到需要对空值进行处理的地方。

    空值在python中的表现一般为:

    1、None

    2、False

    3、''

    4、nan

    前3个很容易判断,直接=就可以了,第四种比较蛋疼,因为你会发现,它无法用==进行判断(这个跟nan的原因有关),这里要从nan的是啥说起。

    NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个表述inf,inf和nan的不同在于,inf是一个超过浮点表示范围的浮点数(其本质仍然是一个数,只是他无穷大,因此无法用浮点数表示,比如1/0),而nan则一般表示一个非浮点数(比如无理数)

    在数学上inf==inf,且inf == inf+X(X为任意浮点数),而nan != nan,因此在python中判断一个数是否是nan,可以直接判断他是否与自身相等。

    >>> np.nan == np.nan
    False

    这也是变量≠自身的一个特例,因此使用这个性质可以判断这个数是否为nan。

    nan的类型,如果硬要归类的话,应该更像浮点型。

    >>> np.nan
    nan
    >>> type(np.nan)
    <type 'float'>

    要注意的是,nan的类型是float,当对nan进行强制类型转换时,转换为整数型时会报错,一般的报错是如下情况:

    >>> int(np.nan)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: cannot convert float NaN to integer
    >>> long(np.nan)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: cannot convert float NaN to integer
    >>> int('nan')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: 'nan'

    如果是报上面的错前两个错,则是因为被转型的已经是一个float的nan(np.nan),如果是报第三个错,则被转换的是字符串'nan'

    而将nan或'nan'从字符串到float转换时,都不会出现错误。这也是有时候会隐藏的错误,因为numpy的ndarray是支持复合类型的(如object),如果是一个非法字符被先后转换为float,string,则会表现出是一个string,如果进行强转,则报第三个错。而且此时不能用x!=x判断。

    现在python的大部分普通运算中已经不会出现nan,但是在numpy包中,从list转换nparray时,如果遇到类型不匹配,或其他问题导致转换失败时,仍然会以nan填充,而不是报错。在处理这类问题,则需要设置一些缺失值处理方法,这里pandas包里提供了很多,最常用的就是用空值或0替换掉。

    众多python培训视频,尽在python学习网,欢迎在线学习!


    起源地下载网 » python3如何检测空值

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元