久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 給小姐姐顏值投票學(xué)習(xí)數(shù)據(jù)分析多層索引

        給小姐姐顏值投票學(xué)習(xí)數(shù)據(jù)分析多層索引

        來(lái)源:千鋒教育
        發(fā)布人:wjy
        時(shí)間: 2022-07-29 17:14:03 1659086043

          各位朋友們,今天給大家?guī)?lái)的是數(shù)據(jù)分析的內(nèi)容。歡迎各位朋友多提寶貴意見(jiàn)哦!

          本次分享給大家的是:DataFrame的多層索引及使用。

          多層索引是指在行或者列軸上有兩個(gè)及以上級(jí)別的索引,一般表示一個(gè)數(shù)據(jù)的幾個(gè)分項(xiàng)。比如,下圖所示的數(shù)據(jù)樣式:

        屏幕快照 2021-07-29 下午7.59.34

          我們使用的是對(duì)美女的顏值投票數(shù)據(jù),現(xiàn)在有幾位美女分別給他們起了容易記憶的名字,比如:小麗,小芳啊

          于是拿著這些照片來(lái)到辦公區(qū),投票啦!投票啦!大家分成了兩組進(jìn)行投票,男生一組、女生一組,投票的內(nèi)容就是:漂亮和不漂亮。

          于是就有了下面的數(shù)據(jù)部分:

        屏幕快照 2021-07-29 下午5.20.11

          大家發(fā)現(xiàn)這個(gè)表格數(shù)據(jù)跟我們常用的不同,那就是列名是有兩層的。那這樣的數(shù)據(jù)怎么進(jìn)行數(shù)據(jù)分析呢?

          ```

          import numpy as np

          import pandas as pd

          beauty = pd.read_excel('beauty.xlsx')

          beauty

          ```

        屏幕快照 2021-07-29 下午5.38.35

          這是什么情況?列名怎么還有Unnamed:0,Unnamed:1這些呢?是我們讀取數(shù)據(jù)的時(shí)候沒(méi)有設(shè)置index_col和header屬性。

          header設(shè)置的是列,如果是多列則使用列表,從左到右為0,1,2,...,index_col則是設(shè)置的行,用來(lái)指定行索引。

          ```

          beauty = pd.read_excel('beauty.xlsx',header=[0,1],index_col=0)

          beauty

          ```

        屏幕快照 2021-07-29 下午5.46.06

          但是要自己創(chuàng)建一個(gè)多層索引則有兩種方式:分別是隱式和顯式的。

          ### 創(chuàng)建多層索引

          方法一:隱式創(chuàng)建,即給DataFrame的`index`或`columns`參數(shù)傳遞兩個(gè)或更多的數(shù)組。我們自己構(gòu)建一個(gè)顏值投票的數(shù)據(jù)。

          ```

          df1 = pd.DataFrame(np.random.randint(1,30, size=(8, 4)),

          index= ['小明','小花','小麗','小玲','小軍','小新','小美','小芳'],

          columns=[['男生', '男生', '女生', '女生'],

          ['漂亮', '不漂亮', '漂亮', '不漂亮']])

          ```

          數(shù)據(jù)雖然有些區(qū)別,但是結(jié)構(gòu)是一樣的。

        屏幕快照 2021-07-29 下午5.55.51

          方法二、顯示創(chuàng)建,推薦使用較簡(jiǎn)單的`pd.MultiIndex.from_product`方法。

          MultiIndex表示多級(jí)索引,它是從Index繼承過(guò)來(lái)的,其中多級(jí)標(biāo)簽用元組對(duì)象來(lái)表示。from_product()從多個(gè)集合的笛卡爾積創(chuàng)建MultiIndex對(duì)象。

          具體的詳解:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.MultiIndex.html

          ```

          df = pd.DataFrame(np.random.randint(1,30, size=(8, 4)),

          index= ['小明','小花','小麗','小玲','小軍','小新','小美','小芳'],

          columns=pd.MultiIndex.from_product([['男生', '女生'],

          ['漂亮', '不漂亮']]))

          ```

          哇!完美!比剛才的還簡(jiǎn)單了呢?

        屏幕快照 2021-07-29 下午6.10.31

          ### 檢索多層索引

          如果檢索小美的女生投票如何獲取呢?再比如獲取小玲的男生漂亮值的投票數(shù)是多少呢?

          我們一起來(lái)看看吧!我們以上面真實(shí)的投票數(shù)據(jù)為例來(lái)看一下

          ```

          df.男生

          ```

          結(jié)果:

        屏幕快照 2021-07-29 下午6.14.23

          小新的女生投票如何獲取呢?這時(shí)候就要使用loc[行,列]了,當(dāng)然如果是小美則就是df.loc[‘小美’,'女生']

        屏幕快照 2021-07-29 下午6.15.22

          當(dāng)然你也可以獲取前3位美女的女生投票,兩種方式loc和iloc均可以實(shí)現(xiàn)。

          ```

          df.loc[['小明','小花','小麗'],'女生']

          ```

          或者

          ```

          df.iloc[0:3,[2,3]]

          ```

        屏幕快照 2021-07-29 下午6.22.31

          如果要獲取小明,小麗,小軍,小美的男女生的漂亮投票數(shù)呢?(可以評(píng)論區(qū)留言哦,我們一起學(xué)習(xí)有幾種獲取方式)

          ### 更改多層索引的層級(jí)

          所謂更改多層索引的層級(jí),就是交換下男女生和漂亮和不漂亮的位置。在交換之前我們要知道叫交換的層的名字,但是我們又沒(méi)有名字,所以我們就要先設(shè)置名字,然后交換。

          ```

          df.columns.names = ['gender', 'isBeauty'] # 設(shè)置列索引名

          # 如果設(shè)置index行索引,則可以下面的方式

          # df.index.names = ['你的名字']

          ```

          截取部分?jǐn)?shù)據(jù):

        屏幕快照 2021-07-29 下午6.28.41

          然后就可以交換啦!使用swaplevel

        屏幕快照 2021-07-29 下午6.37.50

          ```

          df.swaplevel('gender', 'isBeauty',axis=1) # 因?yàn)槲覀兪墙粨Q列索引,所以axis=1

          ```

          結(jié)果:

        屏幕快照 2021-07-29 下午6.38.47

          ### 多級(jí)索引的值排序

          索引名字排序

          ```

          df.sort_index(level=0, axis=1, ascending=True) # 對(duì)列索引gender的值進(jìn)行排列

          ```

        屏幕快照 2021-07-29 下午6.41.40

          但是問(wèn)題來(lái)啦!如果說(shuō)按照男生的漂亮值降序排列如何實(shí)現(xiàn)?這就是多層索引的值排序啦!

          ```

          df.sort_values(by=[('男生','漂亮')],ascending=False) # 注意觀察參數(shù)by的內(nèi)容

          ```

        屏幕快照 2021-07-29 下午6.49.13

          如果是按照女生不漂亮進(jìn)行升序排列呢?

          ### 多級(jí)索引匯總統(tǒng)計(jì)

          所謂匯總就是類(lèi)似求和、求均值、最大值之類(lèi)的。比如男生漂亮的最多票數(shù)是誰(shuí)?男女生的漂亮數(shù)總和?

          其實(shí)這個(gè)還是離不開(kāi)我們常用的sum(),mean(),max(),min().....

          ```

          df.sum(level=0,axis=1) # 男女生的票數(shù)總和,其中l(wèi)evel指定了多層索引的索引值

          ```

          或者

          ```

          df.sum(level=1,axis=1) # 此時(shí)獲取的就是漂亮和不漂亮的總和

          ```

          結(jié)果:

        屏幕快照 2021-07-29 下午6.57.52

          但是男生漂亮的最多票數(shù)是誰(shuí)?這樣就是跨行獲取最大值

          ```

          df.男生.漂亮.max()

          ```

          所以很重要的就是:從求和這里我們來(lái)分析,就是我們是跨行求和還是跨列求和??缧芯褪莂xis=0,跨列就是axis=1.

          ### 多級(jí)索引軸向轉(zhuǎn)換

          常見(jiàn)的數(shù)據(jù)層次化結(jié)構(gòu):樹(shù)狀和表格

        屏幕快照 2021-07-29 下午7.28.11

          - 軸向轉(zhuǎn)換的函數(shù)

          > 1. stack:“透視”某個(gè)級(jí)別的(可能是多層的)列標(biāo)簽,返回帶有索引的 DataFrame,該索引帶有一個(gè)新的最里面的行標(biāo)簽。

          > 2. unstack:(堆棧的逆操作)將(可能是多層的)行索引的某個(gè)級(jí)別“透視”到列軸,從而生成具有新的最里面的列標(biāo)簽級(jí)別的重構(gòu)的 DataFrame。

          >

          > stack 過(guò)程將數(shù)據(jù)集的列轉(zhuǎn)行,unstack 過(guò)程為行轉(zhuǎn)列。

        屏幕快照 2021-07-29 下午7.51.52

        屏幕快照 2021-07-29 下午7.52.03

          ```

          df1 = df.stack() # 默認(rèn)是內(nèi)層的進(jìn)行轉(zhuǎn)換

          df1

          ```

          截取部分:

        屏幕快照 2021-07-29 下午7.30.09

          注意此時(shí)使用的是df1,df1是上圖轉(zhuǎn)換后的數(shù)據(jù)。按照上圖標(biāo)記的level=0和level=1

          ```

          df1.unstack(level=0) # 就是將level=0的數(shù)據(jù)轉(zhuǎn)換到列上

          ```

        屏幕快照 2021-07-29 下午7.55.25

          如果數(shù)據(jù)里面的缺失值,則可以使用dropna的參數(shù)即:df.stack(dropna=True)

          另外還有一些屬性,比如:

          > df.index.names 查看行索引的名稱(chēng)

          >

          > df.columns.names 查看列索引的名稱(chēng)

          >

          > df.index.nlevels 層級(jí)數(shù)

          >

          > df.index.levels 行的層級(jí)

          >

          > df.columns.levels 列的層級(jí)

          >

          > df[['男生','女生']].index.levels 篩選后的層級(jí)

          >

          > df.index.droplevel(0) 刪除指定等級(jí)

          希望本篇文章可以給大家?guī)?lái)收獲,如果喜歡的話,歡迎轉(zhuǎn)發(fā)哦!

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        服務(wù)器為什么要用Linux?

        服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

        2023-10-14 12:34:11
        ORM解決的主要問(wèn)題是什么?

        ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

        2023-10-14 12:26:19
        Go為什么不支持三元運(yùn)算符?

        Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過(guò)程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

        2023-10-14 12:12:36
        IT通常說(shuō)的平臺(tái)是什么意思?

        在信息技術(shù)(IT)領(lǐng)域,”平臺(tái)”這個(gè)詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開(kāi)發(fā)和運(yùn)行的基礎(chǔ)框架和環(huán)境。以下是對(duì)”平臺(tái)”這個(gè)概念的更深入...詳情>>

        2023-10-14 11:55:36
        什么是PowerPivot?

        什么是PowerPivotPowerPivot,全稱(chēng)”P(pán)owerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過(guò)PowerPivot,...詳情>>

        2023-10-14 11:25:48
        五峰| 攀枝花市| 志丹县| 章丘市| 永德县| 曲周县| 大宁县| 班玛县| 眉山市| 荔浦县| 大连市| 靖远县| 湄潭县| 南通市| 云南省| 富锦市| 南充市| 读书| 汝阳县| 温泉县| 会宁县| 维西| 福海县| 神池县| 灌南县| 建湖县| 公主岭市| 新营市| 永寿县| 神农架林区| 南皮县| 饶平县| 霍山县| 融水| 神农架林区| 深州市| 梅河口市| 石屏县| 岳阳县| 杭州市| 怀柔区|