<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          分享6個(gè)祖?zhèn)鞯膒andas數(shù)據(jù)處理代碼

          共 2293字,需瀏覽 5分鐘

           ·

          2022-04-14 04:37

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包


          今天和大家分享自己總結(jié)的6個(gè)常用的Pandas數(shù)據(jù)處理代碼,對(duì)于經(jīng)常處理數(shù)據(jù)的coder最好熟練掌握。

          選取有空值的行

          在觀察數(shù)據(jù)結(jié)構(gòu)時(shí),該方法可以快速定位存在缺失值的行。

          df?=?pd.DataFrame({'A':?[0,?1,?2],
          ???????????????????'B':?[0,?1,?None],
          ???????????????????'C':?[0,?None,?2]})
          df[df.isnull().T.any()]

          輸出:

          ??A???B???C???????????A???B???C
          0?0?0.0?0.0?????????1?1?1.0?NaN
          1?1?1.0?NaN???-->???2?2?NaN?2.0
          2?2?NaN?2.0

          快速替換列值

          實(shí)際數(shù)據(jù)處理經(jīng)常會(huì)根據(jù)一些限定條件來(lái)替換列中的值。

          df?=?pd.DataFrame({'name':['Python',?'Java',?'C']})

          #?第一種方式
          df['name'].replace('Java',?'JavaScript',?inplace=True)
          #?第二種方式
          df.loc[df['name'].str.contains('Java'),?'name']?=?'JavaScript'

          輸出:

          ?????name???????????????????name
          0??Python??????????0??????Python
          1????Java????--->??1??JavaScript
          2???????C??????????2???????????C

          對(duì)列進(jìn)行分區(qū)

          很多情況下,對(duì)于數(shù)值類型的數(shù)據(jù),我們需要分區(qū)來(lái)計(jì)算每個(gè)區(qū)間數(shù)據(jù)出現(xiàn)的頻率。這時(shí)用 pd.cut 就能很好的解決這一問(wèn)題。

          import?random

          age?=?random.sample(range(90),?20)
          cut_res?=?pd.cut(age,?bins=[0,?18,?35,?60,?90])
          # cut_res type:
          cut_res.value_counts()

          輸出:

          (0,?18]?????6
          (18,?35]????1
          (35,?60]????6
          (60,?90]????7

          將一列分為多列

          在文本數(shù)據(jù)清洗時(shí),一些列中存在分隔符('', ',', ':')分隔的值,我們只需將該列根據(jù)分隔符進(jìn)行 split 即可。

          import?pandas?as?pd

          df?=?pd.DataFrame({'address':?['四川省?成都市',
          ???????????????????????????????'湖北省?武漢市',
          ???????????????????????????????'浙江省?杭州市']})
          res?=?df['address'].str.split('?',?expand=True)??
          res.columns?=?['province',?'city']

          輸出:

          ??province?city
          0?四川省????成都市
          1?湖北省????武漢市
          2?浙江省????杭州市

          expand參數(shù)選擇是否擴(kuò)展為 DataFrame,False 則返回 Series

          中文篩選

          同樣在清洗過(guò)程中,往往會(huì)出現(xiàn)一些不需要的中文字段,這時(shí)直接用 str.contains 篩選即可。

          df?=?pd.DataFrame({'mobile_phone':
          ???????????????????['15928765644',
          ????????????????????'15567332235',
          ????????????????????'暫無(wú)']})
          df[~df['mobile_phone'].str.contains('[\u4e00-\u9fa5]')]

          輸出:

          ??mobile_phone?????????mobile_phone
          0?15928765644????????0?15928765644
          1?15567332235???-->??1?15567332235
          2?暫無(wú)

          更改列的位置

          有時(shí)我們需要調(diào)整列的位置,當(dāng)數(shù)據(jù)列較少時(shí),可以用下面的方式

          df?=?pd.DataFrame({'name':?['A',?'B',?'C'],
          ???????????????????'age':?[10,?20,?30],
          ???????????????????'gender':?[0,?1,?0]})
          df?=?df[['name',?'gender',?'age']]

          輸出:

          ?name?age?gender????name?gender?age
          0???A??10?0????????0???A?0???????10
          1???B??20?1???-->??1???B?1???????20
          2???C??30?0????????2???C?0???????30

          如果列較多,那么,一個(gè)個(gè)列舉出來(lái)會(huì)比較繁瑣,推薦下面插入的方式。

          col?=?df['gender']
          df.drop('gender',?axis=1,?inplace=True)
          df.insert(1,?'gender',?col)

          這就是今天分享的主要內(nèi)容,實(shí)踐永遠(yuǎn)是最好的學(xué)習(xí)方式,記憶的也更牢固。原創(chuàng)不易,如果能點(diǎn)個(gè)贊就是對(duì)小編最大的支持!


          1. 終于,Python 也可以寫(xiě)前端了

          2. 百看不如一練, 247 個(gè) Python 實(shí)戰(zhàn)案例!


          您看此文用???分??秒,轉(zhuǎn)發(fā)只需1秒
          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  av毛片 | 男女系列视频福利网站 | 囯产精品内射免费观看 | 影音先锋一二三区 | 亚洲AV无码久久精品色无码蜜桃 |