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>

        25個(gè)例子學(xué)會(huì)Pandas Groupby 操作!

        共 9073字,需瀏覽 19分鐘

         ·

        2022-10-08 16:45

        來(lái)源丨DeepHub IMBA

        大家好,我是小F~ groupby是Pandas在數(shù)據(jù)分析中最常用的函數(shù)之一。 它用于根據(jù)給定列中的不同值對(duì)數(shù)據(jù)點(diǎn)(即行)進(jìn)行分組,分組后的數(shù)據(jù)可以計(jì)算生成組的聚合值。
        如果我們有一個(gè)包含汽車(chē)品牌和價(jià)格信息的數(shù)據(jù)集,那么可以使用groupby功能來(lái)計(jì)算每個(gè)品牌的平均價(jià)格。 3a362c8bcbec566024ea252d92075311.webp在本文中,我們將使用25個(gè)示例來(lái)詳細(xì)介紹groupby函數(shù)的用法。這25個(gè)示例中還包含了一些不太常用但在各種任務(wù)中都能派上用場(chǎng)的操作。 這里使用的數(shù)據(jù)集是隨機(jī)生成的,我們把它當(dāng)作一個(gè)銷(xiāo)售的數(shù)據(jù)集。
            
                
                   import pandas as pd
                
                
                   sales = pd.read_csv("sales_data.csv")
                
                
                   sales.head()
                
              

        affd91ba7350459b04681f1e8691c3f5.webp 1、單列聚合 我們可以計(jì)算出每個(gè)店鋪的平均庫(kù)存數(shù)量如下:
            
                
                   sales.groupby("store")["stock_qty"].mean()
                
                
                
                   #輸出
                
                
                   store
                
                
                   Daisy     1811.861702
                
                
                   Rose       1677.680000
                
                
                   Violet   14622.406061
                
                
                   Name: stock_qty, dtype: float64
                
              
        2、多列聚合 在一個(gè)操作中進(jìn)行多個(gè)聚合。以下是我們?nèi)绾斡?jì)算每個(gè)商店的平均庫(kù)存數(shù)量和價(jià)格。
            
                
                   sales.groupby("store")[["stock_qty","price"]].mean()
                
              
        e82d1e5ea7ffe0035f2101be9eb69159.webp 3、多列多個(gè)聚合 我們還可以使用agg函數(shù)來(lái)計(jì)算多個(gè)聚合值。
              
                 sales.groupby("store")["stock_qty"].agg(["mean", "max"])
              
            
        4、對(duì)聚合結(jié)果進(jìn)行命名 在前面的兩個(gè)示例中,聚合列表示什么還不清楚。例如,“mean”并沒(méi)有告訴我們它是什么的均值。在這種情況下,我們可以對(duì)聚合的結(jié)果進(jìn)行命名。
            
                
                   sales.groupby("store").agg(  
                
                
                      avg_stock_qty = ("stock_qty", "mean"),
                
                
                      max_stock_qty = ("stock_qty", "max")
                
                
                      )
                
              
        251194958411392dcd8bb638894e2bcc.webp要聚合的列和函數(shù)名需要寫(xiě)在元組中。 5、多個(gè)聚合和多個(gè)函數(shù)
              
                 sales.groupby("store")[["stock_qty","price"]].agg(["mean", "max"])
              
            


        256e74eee283463b68f2fbc2e917bc93.webp


        6、對(duì)不同列的聚合進(jìn)行命名
            
                
                   sales.groupby("store").agg(
                
                
                      avg_stock_qty = ("stock_qty", "mean"),
                
                
                      avg_price = ("price", "mean")
                
                
                      )
                
              
        a945977d906fff22416f1798d70984c5.webp 7、as_index參數(shù) 如果groupby操作的輸出是DataFrame,可以使用as_index參數(shù)使它們成為DataFrame中的一列。
            
                
                   sales.groupby("store", as_index=False).agg(
                
                
                
                      avg_stock_qty = ("stock_qty", "mean"),
                
                
                      avg_price = ("price", "mean")
                
                
                      )
                
              

        2b1f76d4fc5a139e2e81bf9b2ccd8a96.webp 8、用于分組的多列 就像我們可以聚合多個(gè)列一樣,我們也可以使用多個(gè)列進(jìn)行分組。
            
                
                   sales.groupby(["store","product_group"], as_index=False).agg(
                
                
                
                      avg_sales = ("last_week_sales", "mean")
                
                
                
                   ).head()
                
              

        a702e32e48c9cf6377471401119562f9.webp每個(gè)商店和產(chǎn)品的組合都會(huì)生成一個(gè)組。 9、排序輸出 可以使用sort_values函數(shù)根據(jù)聚合列對(duì)輸出進(jìn)行排序。
            
                
                   sales.groupby(["store","product_group"], as_index=False).agg(   avg_sales = ("last_week_sales", "mean")
                
                
                
                   ).sort_values(by="avg_sales", ascending=False).head()
                
              

        59f44c3b8db780c8dd65efd0a8e06cfd.webp這些行根據(jù)平均銷(xiāo)售值按降序排序。 10、最大的Top N max函數(shù)返回每個(gè)組的最大值。如果我們需要n個(gè)最大的值,可以用下面的方法:
            
                
                   sales.groupby("store")["last_week_sales"].nlargest(2)
                
                
                
                   store      
                
                
                   Daisy   413   1883
                
                
                          231     947
                
                
                   Rose   948     883
                
                
                          263     623
                
                
                   Violet 991   3222
                
                
                          339   2690
                
                
                   Name: last_week_sales, dtype: int64
                
              
        11、最小的Top N 與最大值相似,也可以求最小值
            
                
                   sales.groupby("store")["last_week_sales"].nsmallest(2)
                
              

        12、第n個(gè)值 除上面2個(gè)以外,還可以找到一組中的第n個(gè)值。
              
                 sales_sorted = sales.sort_values(by=["store","last_month_sales"], ascending=False, ignore_index=True)
              
            
        找到每個(gè)店鋪上個(gè)月銷(xiāo)售排名第五的產(chǎn)品如下:
            
                
                   sales_sorted.groupby("store").nth(4)
                
              

        cbec110002247cb72aa90bf534c0149d.webp輸出包含每個(gè)組的第5行。由于行是根據(jù)上個(gè)月的銷(xiāo)售值排序的,所以我們將獲得上個(gè)月銷(xiāo)售額排名第五的行。 13、第n個(gè)值,倒排序 也可以用負(fù)的第n項(xiàng)。例如," nth(-2) "返回從末尾開(kāi)始的第二行。
            
                
                   sales_sorted.groupby("store").nth(-2)
                
              

        b177bbfefa73791ca5e5411de31daacf.webp 14、唯一值 unique函數(shù)可用于查找每組中唯一的值。例如,可以找到每個(gè)組中唯一的產(chǎn)品代碼如下:
            
                
                   sales.groupby("store", as_index=False).agg(
                
                
                   unique_values = ("product_code","unique")
                
                
                   )
                
              

        39e3fa0ffbe8d975ed82ef3df3913402.webp 15、唯一值的數(shù)量 還可以使用nunique函數(shù)找到 每組中唯一值的數(shù)量。
            
                
                   sales.groupby("store", as_index=False).agg(
                
                
                   number_of_unique_values = ("product_code","nunique")
                
                
                   )
                
              
        6caa7a473cbeb6f9f97a8870dbb0e4fb.webp
        16、Lambda表達(dá)式 可以在agg函數(shù)中使用lambda表達(dá)式作為自定義聚合操作。
            
                
                   sales.groupby("store").agg(
                
                
                      total_sales_in_thousands = (
                
                
                          "last_month_sales",
                
                
                          lambda x: round(x.sum() / 1000, 1)
                
                
                      )
                
                
                   )
                
              

        dd1d19407a1965793205de31e908db1b.webp
        17、apply函數(shù) 使用apply函數(shù)將Lambda表達(dá)式應(yīng)用到每個(gè)組。例如,我們可以計(jì)算每家店上周銷(xiāo)售額與上個(gè)月四分之一銷(xiāo)售額的差值的平均值,如下:
            
                
                   sales.groupby("store").apply(
                
                
                   lambda x: (x.last_week_sales - x.last_month_sales / 4).mean()
                
                
                   )
                
                
                
                   store
                
                
                   Daisy     5.094149
                
                
                   Rose     5.326250
                
                
                   Violet   8.965152
                
                
                   dtype: float64
                
              

        18、dropna 缺省情況下,groupby函數(shù)忽略缺失值。如果用于分組的列中缺少一個(gè)值,那么它將不包含在任何組中,也不會(huì)單獨(dú)顯示。所以可以使用dropna參數(shù)來(lái)改變這個(gè)行為。 讓我們首先添加一個(gè)缺少存儲(chǔ)值的新行。
            
                
                   sales.loc[1000] = [None, "PG2", 10000, 120, 64, 96, 15, 53]
                
              

        然后計(jì)算帶有dropna參數(shù)和不帶有dropna參數(shù)的每個(gè)商店的平均價(jià)格,以查看差異。
            
                
                   sales.groupby("store")["price"].mean()
                
                
                
                   store
                
                
                   Daisy     69.327426
                
                
                   Rose     60.513700
                
                
                   Violet   67.808727
                
                
                   Name: price, dtype: float64
                
              
        看看設(shè)置了缺失值參數(shù)的結(jié)果:
            
                
                   sales.groupby("store", dropna=False)["price"].mean()
                
                
                
                   store
                
                
                   Daisy     69.327426
                
                
                   Rose     60.513700
                
                
                   Violet   67.808727
                
                
                   NaN       96.000000
                
                
                   Name: price, dtype: float64
                
              
        groupby函數(shù)的dropna參數(shù),使用pandas版本1.1.0或更高版本。 19、求組的個(gè)數(shù) 有時(shí)需要知道生成了多少組,這可以使用ngroups。
            
                
                   sales.groupby(["store", "product_group"]).ngroups
                
                
                
                   18
                
              
        在商店和產(chǎn)品組列中有18種不同值的不同組合。 20、獲得一個(gè)特定分組 get_group函數(shù)可獲取特定組并且返回DataFrame。 例如,我們可以獲得屬于存儲(chǔ)“Daisy”和產(chǎn)品組“PG1”的行如下:
            
                
                   aisy_pg1 = sales.groupby(
                
                
                   ["store", "product_group"]).get_group(("Daisy","PG1")
                
                
                   )
                
                
                   daisy_pg1.head()
                
              
        c1fb4a8bd264bec67982645c74032019.webp
        21、rank函數(shù) rank函數(shù)用于根據(jù)給定列中的值為行分配秩。我們可以使用rank和groupby函數(shù)分別對(duì)每個(gè)組中的行進(jìn)行排序。
            
                
                   sales["rank"] = sales.groupby("store"["price"].rank(
                
                
                   ascending=False, method="dense"
                
                
                   )
                
                
                
                   sales.head()
                
              
        086d916a8c1c040ec7d75068a971d5c2.webp
        22、累計(jì)操作 們可以計(jì)算出每組的累計(jì)總和。
            
                
                   import numpy as npdf = pd.DataFrame(
                
                
                      {
                
                
                        "date": pd.date_range(start="2022-08-01", periods=8, freq="D"),
                
                
                        "category": list("AAAABBBB"),
                
                
                        "value": np.random.randint(10, 30, size=8)
                
                
                      }
                
                
                   )
                
              

        63e41329b0d59a5d71dbff96cd823612.webp我們可以單獨(dú)創(chuàng)建一個(gè)列,包含值列的累計(jì)總和,如下所示:
            
                
                   df["cum_sum"] = df.groupby("category")["value"].cumsum()
                
              

        ce02a9e4029ecaaab6052f587c862b43.webp
        23、expanding函數(shù) expanding函數(shù)提供展開(kāi)轉(zhuǎn)換。但是對(duì)于展開(kāi)以后的操作還是需要一個(gè)累計(jì)函數(shù)來(lái)堆區(qū)操作。例如它與cumsum 函數(shù)一起使用,結(jié)果將與與sum函數(shù)相同。
            
                
                   df["cum_sum_2"] = df.groupby(
                
                
                      "category"
                
                
                   )["value"].expanding().sum().values
                
              
        086bf645596d46cab49020aeb3b7743e.webp
        24、累積平均 利用展開(kāi)函數(shù)和均值函數(shù)計(jì)算累積平均。
            
                
                   df["cum_mean"] = df.groupby(
                
                
                      "category"
                
                
                   )["value"].expanding().mean().values
                
              

        f3837a864c9289330f4560ef3324a700.webp
        25、展開(kāi)后的最大值 可以使用expand和max函數(shù)記錄組當(dāng)前最大值。
            
                
                   df["current_highest"] = df.groupby(
                
                
                      "category"
                
                
                   )["value"].expanding().max().values
                
              

        bc96c3c3f3e3551fda3f9c42a4387aa8.webp在Pandas中g(shù)roupby函數(shù)與aggregate函數(shù)共同構(gòu)成了高效的數(shù)據(jù)分析工具。在本文中所做的示例涵蓋了groupby功能的大多數(shù)用例,希望對(duì)你有所幫助。
            
                萬(wàn)水千山總是情,點(diǎn)個(gè)????行不行
              
            
        瀏覽 42
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        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>
            国产学生妹在线播放| 777性爱| 内射在线播放| 日韩精品一区二区三区使用方法 | 五月婷婷激情网| 久久WW| 热久久这里只有精品| 国产精品码一本A片| 91高清无码视频| 嘿咻嘿咻动态图| 3DAV一区二区三区动漫| 亚洲av成人网| 在线无码视频| 亚洲无码电影在线| 无码福利| 亚洲精品婷婷| 五月天久久婷婷| 看一级黄色片| 91三级在线观看| 日韩欧美在线中文字幕| 黄片网址大全| 欧美AAA黄片| aaa精品视频| 欧美日韩一级在线观看| 国产精品乱码毛片在线人与| 日日夜夜精品| 日韩国产在线观看| 3D动漫啪啪精品一区二| 日韩视频无码| 特级西西44www无码| AV片在线免费观看| 夜夜艹| 香蕉国产2023| www.91com| 91香蕉国产视频| 俺去啦俺去啦| 成人无码网站在线观看| 无码高清视频在线观看| AV大全在线免费观看| 在线视频三区| av大片在线观看| AAA激情| 无码一区二区三区四季| 日韩不卡| 久久精品亚洲| 91成人做爰A片| 日本Sm/调教/捆绑/紧缚| 嫩BBB嫩BBB嫩BBB| 爱视频福利| 中文字幕亚洲日韩| 最新国产AV| AA片免费网站| 日韩特级片| 青春草在线观看视频| 日韩欧美午夜成人无码| 国产综合久久777777麻豆| 亚洲无码精品一区二区| 成人动漫一区二区| 日韩人妻斩| 老女人日逼视频| 日韩激情AV| 日韩三级成人| 国产操美女| 日韩人妻无码一区二区三区| 18禁黄色免费网站| 中文三区| 国产娇小13videos糟蹋| 高潮国产视频| 天天拍天天操| 人人爽人人| 亚洲成人AV在线观看| av怡红院| 日逼电影网| 超碰97久久| 人妻大屁股-91Porn| 美女黄色视频网站| 国产99re| 中文在线字幕电视剧免费平台| 91看片| 91av成人| 97AV视频| 久久AA| 亚洲中文娱乐| 9I成人免费版视频| 无码中文综合成熟精品AV电影| 五月婷婷中文版| 久久久久久免费一级A片| 东北女人毛多又黑A片| www.操B| 日韩熟妇人妻中文字幕| 69福利社| 麻豆精东一区二区欧美国产| 日本黄色免费网站| 国产海角视频| 人妻77777| 熟女一区二区三区| 精品无码在线观看视频| 91精品国产综合久久久蜜臀图片| 成人777777| 亚洲中文AV在线| 黄色A毛片| 国产麻豆传媒| 国产在线视频网站| 日韩在线看片| 成人黄色视频网站在线观看| 欧美嗯啊| 69成人无码| 国产精品国产精品国产专区| 日产毛片| 黄片入口| 中文字幕视频一区| 欧美成人18| 亚洲国产97| 青青草大香蕉在线| 啪啪啪网址| 午夜福利123| 亚洲精品秘一区二区三区影| 国产午夜激情视频| 亚洲免费观看高清完整版| 日韩AⅤ| 国产一级片免费看| 今天成全在线观看高清| 成人三级在线| 国产视频福利| 91少妇精品| 俺来也最新网址| 国产成人久久777777| 免费黄网站在线观看| 影音先锋乱伦| 亚洲理伦| 操逼视频免费播放| 亚洲v视频| 天天干天天做| 久久丁香五月婷婷五月天激情视频| 精品欧美激情精品一区| 99久久综合国产精品二区| 乱伦播放五月天| 中文字幕欧美激情| 亚洲综合在线观看视频| 色婷婷AV一区二区三区之e本道 | 99超碰在线观看| 色婷婷电影| 天天日天天干天天射| 中文字幕首页| 久久思热国产| 黄片网站在线免费观看| 婷婷午夜精品久久久久久| 亚洲成人无码在线播放| 日韩在线精品| 综合天堂AV久久久久久久| 无码网址| 国产精品色婷婷99久久精品| 欧美一级A片免费看视频小说| 91看片看婬黄大片Videos| 国产午夜精品一区二区| 高清无码波多野结衣| 91看片| 婷婷五月天在线观看| 亚洲无码黄色电影| 亚洲欧洲精品成人久久曰影片| 99久久婷婷国产综合| 无码无遮挡| 狠狠色丁香| 强奷伦奷片91| 视频一区乳奴| 日韩七区| 婷婷无码成人精品俺来俺去| 日本乱伦网| 中文字幕视频网站| 干片网| 久操视频一区二区三区| 天天色图片| 年轻女教师高潮2| 小明看台湾成人永久免费视频网站| 91人妻人人澡人人爽人人精| 欧美日韩精品久久久免费观看| 久热中文| 日韩黄色A级片| 日韩乱伦网站| 久久精品秘一区二区三免费| 亚洲成人久久久| 欧美操操| 九九热毛片在线观看| 午夜操B| 亚洲秘无码一区二区三区| 超碰97在线免费| 草逼无码| 91精品视频在线| 三级av网站| 尤物视频在线观看视频| 一起草在线视频| 怡春院av| 狠狠干狠狠操| 欧美精品| 久久精品五月天| 国产麻豆三级片| 成人一区二区三区四区| 极品美女扒开粉嫩小泬高潮一| 揄拍成人国产精品视频| 操逼视频网站免费| 日韩大香蕉在线| 欧美成人视频网站| 欧美成人黄色小视频| 国产无遮挡又黄又爽又色视频软件| 乱子伦国产精品视频一级毛| 在线有区别亚洲| 欧美一区二区三区视频| 国产三级片网| jizz丝袜| 天天操网址| 国产精品秘麻豆果冻传媒潘甜甜丶 | 亚洲欧美日韩久久| 欧美自拍视频| 亚洲欧美久久久久久久久久久久| 日韩AV中文字幕在线播放| 日韩欧美视频在线| 日日精品| 日韩免费Av| 国产精品久久久久久久牛牛| 亚洲黄色视频免费看| 91精品人妻一区二区三区| 中文字幕黑人无码| 亚洲高清无码视频大全| 免费AV在线播放| 青娱乐成人| 瘦精品无码一区二区三区四区五区六区七区八区 | 亚洲天堂在线免费| 亚洲小说区图片区都市| 亚洲中文字幕网| 成人精品A片免费网站| 日韩群交视频| 午夜AAA| 成人无码www在线看免费| 色久悠悠综合网| 黄色电影大香蕉| A在线视频| 91免费在线视频| 91精品国产乱码久久久久| 精品人伦一区二区三区| 日韩精品五区| 麻豆精品国产| 永久在线| 免费欧美性爱视频| 国产骚逼| 色呦呦视频| AV自拍偷拍| 亚洲一级A片| 一级片黄色免费| 国产人妖AV| 国产一级a一级a免费视频| 久久久婷婷| 国精品无码一区二区三区在线秋菊| 欧美日韩激情视频| 五月天婷婷视频| 欧美日韩一级在线观看| 亚洲欧洲日韩综合| www.国产在线| 大鸡吧成人视频| 尤物网站在线观看| 日韩免费一级| 中国熟女网站| 精品国精品自拍自在线| 无码一区二区三区四区五区六区| 久热中文| 免费福利视频网站| 丁香婷婷六月天| 丁香激情五月| 国内自拍网站| 人妻丝袜无码视频专区| 操逼视频国产| 日韩精品成人在线视频| 熟妇人妻中文| 欧美不卡一区| 三级av网站| 西西444WWW无码大胆知乎| 免费一级无码婬片A片APP直播| 微拍福利一区二区| 91无码人妻精品一区二区蜜桃| 黄色免费在线观看视频| 特级毛片av| 亚洲片在线观看| 无码AV在线播放| 久久婷婷青青| 国产精品AV在线观看| 国产熟妇婬乱一区二区| 日日騒av无码| 美女掰穴| a片在线免费观看| 无码激情18激情视频| 丰满人妻无码| 天天干天天日天天操| 永久免费AV无码| 中文字幕黄色电影| 日韩中字无码黄片| 日韩高清区| 无码视频一区| 日本熟妇HD| 日韩一级黄色毛片| 久久久成人网| 久久国产精品电影|