<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>

          Pandas數(shù)據(jù)分析小技巧系列 第二集

          共 3037字,需瀏覽 7分鐘

           ·

          2020-12-04 20:45

          Python與算法社區(qū)
          444篇原創(chuàng),干貨滿滿
          三步加星標(biāo)


          01

          02

          03

          三步加星標(biāo)





          你好!我是 zhenguo

          已推Pandas數(shù)據(jù)分析小技巧系列第一集,今天第二集,往下閱讀前可以先星標(biāo):Python與算法社區(qū),只有這樣才會(huì)第一時(shí)間收到我的推送。

          明天就是2020-12-1,祝你年底一切順利!

          小技巧6:如何快速找出 DataFrame 所有列 null 值個(gè)數(shù)?

          實(shí)際使用的數(shù)據(jù),null 值在所難免。如何快速找出 DataFrame 所有列的 null 值個(gè)數(shù)?

          使用 Pandas 能非常方便實(shí)現(xiàn),只需下面一行代碼:

          data.isnull().sum()

          data.isnull(): 逐行逐元素查找元素值是否為 null.

          .sum(): 默認(rèn)在 axis 為 0 上完成一次 reduce 求和。

          上手實(shí)際數(shù)據(jù),使用這個(gè)小技巧,很爽。

          讀取泰坦尼克預(yù)測(cè)生死的數(shù)據(jù)集

          data?=?pd.read_csv('titanicdataset-traincsv/train.csv')

          結(jié)果:

          檢查 null 值:

          data.isnull().sum()

          結(jié)果:

          PassengerId??????0
          Survived?????????0
          Pclass???????????0
          Name?????????????0
          Sex??????????????0
          Age????????????177
          SibSp????????????0
          Parch????????????0
          Ticket???????????0
          Fare?????????????0
          Cabin??????????687
          Embarked?????????2
          dtype:?int64

          Age 列 177 個(gè) null 值

          Cabin 列 687 個(gè) null 值

          Embarked 列 2 個(gè) null 值

          小技巧7:如何用 Pandas 快速生成時(shí)間序列數(shù)據(jù)?

          與時(shí)間序列相關(guān)的問(wèn)題,平時(shí)還是挺常見(jiàn)的。

          介紹一個(gè)小技巧,使用 pd.util.testing.makeTimeDataFrame

          只需要一行代碼,便能生成一個(gè) index 為時(shí)間序列的 DataFrame:

          import?pandas?as?pd

          pd.util.testing.makeTimeDataFrame(10)

          結(jié)果:

          A?B?C?D
          2000-01-03?0.932776?-1.509302?0.285825?0.941729
          2000-01-04?0.565230?-1.598449?-0.786274?-0.221476
          2000-01-05?-0.152743?-0.392053?-0.127415?0.841907
          2000-01-06?1.321998?-0.927537?0.205666?-0.041110
          2000-01-07?0.324359?1.512743?0.553633?0.392068
          2000-01-10?-0.566780?0.201565?-0.801172?-1.165768
          2000-01-11?-0.259348?-0.035893?-1.363496?0.475600
          2000-01-12?-0.341700?-1.438874?-0.260598?-0.283653
          2000-01-13?-1.085183?0.286239?2.475605?-1.068053
          2000-01-14?-0.057128?-0.602625?0.461550?0.033472

          時(shí)間序列的間隔還能配置,默認(rèn)的 A B C D 四列也支持配置。

          import?numpy?as?np

          df?=?pd.DataFrame(np.random.randint(1,1000,size=(10,3)),
          ??????????????????columns?=?['商品編碼','商品銷(xiāo)量','商品庫(kù)存'])
          df.index?=?pd.util.testing.makeDateIndex(10,freq='H')

          結(jié)果:

          ?商品編碼?商品銷(xiāo)量?商品庫(kù)存
          2000-01-01?00:00:00?99?264?98
          2000-01-01?01:00:00?294?406?827
          2000-01-01?02:00:00?89?221?931
          2000-01-01?03:00:00?962?153?956
          2000-01-01?04:00:00?538?46?374
          2000-01-01?05:00:00?226?973?750
          2000-01-01?06:00:00?193?866?7
          2000-01-01?07:00:00?300?129?474
          2000-01-01?08:00:00?966?372?835
          2000-01-01?09:00:00?687?493?910

          小技巧8:如何重新排序 DataFrame 的列?

          某些場(chǎng)景需要重新排序 DataFrame 的列,如下 DataFrame:

          如何將列快速變?yōu)椋?/p>

          下面給出 2 種簡(jiǎn)便的小技巧。先構(gòu)造數(shù)據(jù):

          df?=?pd.DataFrame(np.random.randint(0,20,size=(5,7))?\
          ,columns=list('ABCDEFG'))
          df

          方法1,直接了當(dāng):

          df2?=?df[["A",?"C",?"D",?"F",?"E",?"G",?"B"]]
          df2

          結(jié)果:

          方法2,也了解下:

          cols?=?df.columns[[0,?2?,?3,?5,?4,?6,?1]]
          df3?=?df[cols]
          df3

          也能得到方法1的結(jié)果。

          小技巧9:如何完成數(shù)據(jù)下采樣,調(diào)整步長(zhǎng)由小時(shí)為天?

          步長(zhǎng)為小時(shí)的時(shí)間序列數(shù)據(jù),有沒(méi)有小技巧,快速完成下采樣,采集成按天的數(shù)據(jù)呢?

          先生成測(cè)試數(shù)據(jù):

          import?pandas?as?pd
          import?numpy?as?np

          df?=?pd.DataFrame(np.random.randint(1,10,size=(240,3)),?\
          columns?=?['商品編碼','商品銷(xiāo)量','商品庫(kù)存'])

          df.index?=?pd.util.testing.makeDateIndex(240,freq='H')
          df

          生成 240 行步長(zhǎng)為小時(shí)間隔的數(shù)據(jù):

          小技巧,使用 resample 方法,合并為天(D)

          day_df?=?df.resample("D")["商品銷(xiāo)量"].sum().to_frame()
          day_df

          結(jié)果如下,10行,240小時(shí),正好為 10 days:


          看到這兒了,別走開(kāi)哈,下面是驚喜時(shí)刻。承蒙出版社老朋友的厚愛(ài),贈(zèng)送給 Python與算法社區(qū)《趣學(xué)Python算法 100 例》5 本:



          算法源于生活,又可以改變生活。本書(shū)專(zhuān)為Python+算法初學(xué)者量身打造!詳解100個(gè)趣味編程算法實(shí)例,內(nèi)容涵蓋Python編程的基礎(chǔ)知識(shí)和常用算法,是初學(xué)算法設(shè)計(jì)與實(shí)現(xiàn)的極佳選擇,詳情點(diǎn)擊下面圖片:

          送書(shū)方法:
          第一步:長(zhǎng)按下方二維碼,關(guān)注我的視頻號(hào):程序員zhenguo
          第二步:在視頻號(hào)內(nèi)私信留言:你想在我的視頻號(hào)里,看到啥、學(xué)到啥,我會(huì)從中選出 5 名最走心的留言,分別送一本。

          瀏覽 47
          點(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>
                  毛片国产| 国产精品大香蕉娱乐在线 | 中国女人操逼 | 毛茸茸的孕妇孕交视频无码 | 人人摸人人 |