1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python數據分析之缺失值處理(一)

        共 2707字,需瀏覽 6分鐘

         ·

        2020-08-08 15:16


        ◆?◆?◆ ?◆?



        前言


        數據缺失值的處理,在數據分析前期,即數據處理過程中占著重要的地位,在數據分析面試中被問到的概率也是極大的。

        一般情況下,我們對待缺失值有三種處理方式:
        (1)源數據補錄,即通過再次采樣或者詢問等方式將缺失內容補充完整;
        (2)缺失值填充,即根據一定的規(guī)則將缺失值填充,可選眾數、中位數等;
        (3)刪除缺失值,即根據一定的規(guī)則將含有缺失值的行或列直接進行刪除。

        我的會員請教了我關于缺失值的問題,于是我為他整理了一篇詳細的文章,講解一下如何進行缺失值處理。今天這篇文章只是缺失值處理的第一節(jié)——缺失值的刪除。


        dropna


        dropna為pandas庫下DataFrame的一個方法,用于刪除缺失值。基本參數如下:

        dropna(self, axis=0, how='any', subset=None, inplace=False)

        接下來,我們一一進行講解。


        #?預覽模擬數據>>>?dfOut[1]:?    name   age   birthday  gender0   Alan  17.0 1999-01-25    male1          NaN        NaT  female2  Black  18.0 1997-02-07    male3   Cici   NaN 2000-01-18  female4  David  25.0        NaT    male5    NaN  22.0        NaT  female
        #?不加任何參數>>>?df.dropna()Out[2]:? name age birthday gender0 Alan 17.0 1999-01-25 male2??Black??18.0?1997-02-07???male
        >>> df.dropna(how?=?'any')Out[3]:? name age birthday gender0 Alan 17.0 1999-01-25 male2 Black 18.0 1997-02-07 male


        通過上面的代碼可以看出,在不加任何參數,即默認值情況下,會把所有包含缺失值的行統統刪除

        # all——刪除整行均為缺失值的行>>>?df.dropna(how?=?'all')Out[4]:     name   age   birthday  gender0   Alan  17.0 1999-01-25    male1          NaN        NaT  female2  Black  18.0 1997-02-07    male3   Cici   NaN 2000-01-18  female4  David  25.0        NaT    male5    NaN  22.0        NaT  female
        >>> df.iloc[:,1:3].dropna(how = 'all')Out[5]: age birthday0 17.0 1999-01-252 18.0 1997-02-073 NaN 2000-01-184 25.0 NaT5 22.0 NaT
        # 按列刪除——即包含缺失值的列統統被刪除>>> df.dropna(axis = 1)Out[6]: gender0 male1 female2 male3 female4 male5 female
        # 刪除指定列包含缺失值的行>>> df.dropna(subset = ['name','gender'])Out[7]: name age birthday gender0 Alan 17.0 1999-01-25 male1 NaN NaT female2 Black 18.0 1997-02-07 male3 Cici NaN 2000-01-18 female4 David 25.0 NaT male

        當然了,以上所有的操作均不是對元數據產生作用,只是生成了一個副本。如果想要對元數據產生作用,則必須加一個inplace參數。


        #?再次查看元數據,觀察是否變化>>>?dfOut[8]:?    name   age   birthday  gender0   Alan  17.0 1999-01-25    male1          NaN        NaT  female2  Black  18.0 1997-02-07    male3   Cici   NaN 2000-01-18  female4  David  25.0        NaT    male5    NaN  22.0        NaT  female
        # 加入inplace參數,對元數據產生影響>>>?df.dropna(inplace?=?True)
        >>> dfOut[9]:? name age birthday gender0 Alan 17.0 1999-01-25 male2 Black 18.0 1997-02-07 male



        后記


        缺失值的處理,是個很麻煩的事兒,在實際工作過程中,你會遇到各種各樣的缺失值,而且處理起來非常棘手。比如索引為1的這一行,name字段也是一個缺失值,這時候該怎么處理呢?!歡迎關注我的公眾號,帶你每天都能更近一步!

        >>>?df[1:2]Out[182]:   name  age birthday  gender1       NaN      NaT  female


        <點擊跳轉,優(yōu)質推薦>

        pandas中apply與map的異同


        《安家》熱播,我用Python對北京房價進行了分析,結果……


        Pandas遇上Pyecharts碰撞出可交互的可視化效果


        五行Python代碼輕松實現OCR文字識別



        記得點在看~祝大家一夜暴富,基金、股票一片紅~




        【送書,包郵到家

        規(guī)則:點在看,分享,排行榜第一即可獲得本書。



        在看”的永遠18歲~
        瀏覽 59
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            www.97av | 国产女人18 | 成人免费无码婬片在线观看 | 韩国电影《少妇的激情》 | 一区二区三区四区免费观看 | 国产精品三级在线 | 一级黄色录像免费 | 国精产品乱码一区一区三区四区 | 免费观看成人毛片 | 爱豆传媒麻豆传媒久久久资源网 |