<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁 > 空調 >

    按照A列進行分組并計算出B列每個分組的平均值

    大家好,我是皮皮。

    一、前言

    前幾天在Python星耀交流群有個叫【在下不才】的粉絲問了一個Pandas的問題,按照A列進行分組并計算出B列每個分組的平均值,然后對B列內的每個元素減去分組平均值,這里拿出來給大家分享下,一起學習。

    二、解決過程

    這個看上去倒是不太難,但是實現的時候,總是一看就會,一用就廢。這里給出【瑜亮老師】的三個解法,一起來看看吧!

    方法一:使用自定義函數

    代碼如下:

    import pandas as pd

    lv = [1, 2, 2, 3, 3, 4, 2, 3, 3, 3, 3]

    num = [122, 111, 222, 444, 555, 555, 333, 666, 666, 777, 888]

    df = pd.DataFrame({"lv": lv, "num": num})

    def demean(arr):

    return arr - arr.mean()

    # 按照"lv"列進行分組并計算出"num"列每個分組的平均值,然后"num"列內的每個元素減去分組平均值

    df["juncha"] = df.groupby("lv")["num"].transform(demean)

    print(df

    # transform 也支持 lambda 函數,效果是一樣的,更簡潔一些

    # df["juncha"] = df.groupby("lv")["num"].transform(lambda x: x - x.mean())

    # print(df)

    方法二:使用內置函數

    代碼如下:

    import pandas as pd

    lv = [1, 2, 2, 3, 3, 4, 2, 3, 3, 3, 3]

    num = [122, 111, 222, 444, 555, 555, 333, 666, 666, 777, 888]

    df = pd.DataFrame({"lv": lv, "num": num})

    gp_mean = df.groupby("lv")["num"].mean().rename("gp_mean").reset_index()

    df2 = df.merge(gp_mean)

    df2["juncha"] = df2["num"] - df2["gp_mean"]

    print(df2)

    方法三:使用 transform

    transform能返回完整數據,輸出的形狀和輸入一致(輸入是num列,輸出也是一列),代碼如下:

    import pandas as pd

    lv = [1, 2, 2, 3, 3, 4, 2, 3, 3, 3, 3]

    num = [122, 111, 222, 444, 555, 555, 333, 666, 666, 777, 888]

    df = pd.DataFrame({"lv": lv, "num": num})

    # 方法三: 使用 transform。

    df["gp_mean"] = df.groupby("lv")["num"].transform("mean")

    df["juncha"] = df["num"] - df["gp_mean"]

    print(df)

    # 直接輸出結果,省略分組平均值列

    df["juncha"] = df["num"] - df.groupby("lv")["num"].transform("mean")

    print(df)

    這樣問題就完美地解決啦!

    后面他還想用類的方式寫,不過看上去沒有那么簡單。

    三、總結

    大家好,我是皮皮。這篇文章主要分享了Pandas處理相關知識,基于粉絲提出的按照A列進行分組并計算出B列每個分組的平均值,然后對B列內的每個元素減去分組平均值的問題,給出了3個行之有效的方法,幫助粉絲順利解決了問題。

    最后感謝粉絲【在下不才】提問,感謝【德善堂小兒推拿-瑜亮老師】給出的具體解析和代碼演示,感謝【月神】提供的思路,感謝【dcpeng】等人參與學習交流。

    小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

    責任編輯:Rex_08

    關鍵詞: demean Pandas
    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 精品国产三级a∨在线观看| t66y最新地址一地址二地址三 | 91香蕉视频导航| 金莲你下面好紧夹得我好爽| 特级毛片a级毛片免费播放| 少妇高潮流白浆在线观看| 国产太嫩了在线观看| 亚洲国产精品综合久久网各| а√天堂资源地址在线官网| 裸のアゲハいきり立つ欲望电影| 日韩AV无码一区二区三区不卡毛片| 国产精品爆乳在线播放第一人称| 作者不详不要…用力呢| chinese男子同性视频twink| 精品第一国产综合精品蜜芽| 彩虹男gary网站| 国产a免费观看| 亚洲人成电影院| 69福利视频一区二区| 熟妇人妻VA精品中文字幕| 成人a级高清视频在线观看| 国产乱人伦真实精品视频| 久久精品国产亚洲夜色AV网站| h无遮挡男女激烈动态图| 欧美日韩亚洲国产无线码| 夜里18款禁用的视频软件| 免费国产美女爽到喷出水来视频| 中文字幕在线不卡精品视频99| 邻居的又大又硬又粗好爽| 日本高清电影免费播放| 国产成人精品久久综合| 亚洲av日韩综合一区久热 | 狠狠躁日日躁夜夜躁2022麻豆 | 精品人妻系列无码一区二区三区 | 精品久久久久久无码中文字幕| 夜夜爱夜夜做夜夜爽| 亚洲国产精品成人午夜在线观看| 国产男女爽爽爽爽爽免费视频 | 韩国电影中文字幕| 成人中文字幕在线| 亚洲精品成人a在线观看|