zoukankan      html  css  js  c++  java
  • 数据分析入门——pandas之DataFrame数据丢失

    一、数据丢失分类

      1)nd中分为两种:None和np.nan(NaN)

      其中,None是python中的对象,是一个object;而nan是一个float类型

      两种不同的类型,运算速度也是不同的

      2)pandas中两种都视作NaN(np.nan)

    二、数据丢失处理  

     通过控制columns来创建有NaN的数据:

        

         通过loc切片赋值来处理部分NaN数据:

        

      1.与空相关的方法

        检测:

          isnull()和notnull()

        

        如何检测df中哪些行中存在空行?

           df.isnull().any(axis=1): True行中存在空 False行中不存在空(any的字面意思就是该行有一个为True即为True)

          df.notnull().all(axis=1): False行中存在空 True行中不存在空(all与上面any类似,也就是逻辑里面的与操作了)

        过滤:

          dropna() --可以选择过滤行还是列(默认为行,也就是axis = 0,有空行则删除)

               可以通过how参数来控制,是any还是all(存在就剔除还是全部才剔除)

                dropna(how = 'all')

          这里重复一下,轴的概念:

            根据stackoverflow答主解释,axis=0指的是逐行,轴是Index;axis=1指的是逐列,轴是columns。(index (0), columns (1))

            根据结果: 
              mean(axis=0)计算的是每一列平均值, 
              mean(axis=1)计算的是每一行平均值。(轴是columns)

          

         填充:(可以填充Series/DataFrame)

          fillna(value = xx)

          对所有的na都进行填充

          

        可以通过method选择向后填充(bfill,使用后一个的值进行填充,文档有详细参数解释),或者向前(ffill)填充

        注意,此处是返回一个填充后的副本,本身并没有改变,可以通过inplace参数来控制

        

  • 相关阅读:
    python使用subprocess及delegator调用第三方程序
    CentOS安装配置nginx-rtmp-module(同时支持IPv4和IPv6)
    npm和cnpm安装(for windows)
    MySQL中pymysql的具体操作
    浅谈Red Hat和 Centos7
    [致]Markdown新手指南
    python面试题
    VB使用ADO中recordeset.delete删除数据记录问题
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6位运算
  • 原文地址:https://www.cnblogs.com/jiangbei/p/11313337.html
Copyright © 2011-2022 走看看