<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>
  • 主站蜘蛛池模板: 大西瓜pron| 最近在线中文字幕影院网| 欧美xxxxx性喷潮| 国产精品成人网站| 免费黄色网址在线观看| 一级片免费试看| 欧美激情成人网| 波多野结衣视频在线免费观看| 天天狠狠弄夜夜狠狠躁·太爽了| 免费日本黄色片| 久久久久亚洲精品男人的天堂| 伊人影视在线观看日韩区| 欧美成人一区二区三区在线观看 | 日本午夜免费福利视频| 国产精品水嫩水嫩| 免费看一级毛片| jizz18日本人在线播放| 美女胸被狂揉扒开吃奶二次元| 日韩国产成人精品视频人| 国产精品第1页| 亚洲一区二区免费视频| 国产精品真实对白精彩久久| 欧美成人高清WW| 国产欧美日韩综合精品一区二区 | 向日葵视频app免费下载 | 久久精品久久精品| 色多多视频在线| 最新国产三级久久| 国产精品99久久不卡| 人人妻人人澡人人爽欧美一区 | 日韩美女在线观看一区| 国产精品无码无在线观看| 亚洲午夜久久久影院| 97久久精品一区二区三区| 欧美在线视频导航| 国产在视频线精品视频| 五福影院最新地址| 草草草在线观看| 日本无遮挡h肉动漫在线观看下载| 国产福利在线观看极品美女| 久久婷婷五月综合色欧美|