特定條件下均值和和的groupbypandas

我試圖為數(shù)百列的大型數(shù)據(jù)框架生成摘要統(tǒng)計(jì)數(shù)據(jù),并總結(jié)它們與感興趣的“結(jié)果”的關(guān)系。可使用以下代碼生成簡化的數(shù)據(jù)幀:

df1 = pd.DataFrame({"time1": [0, 1, 1, 0, 0],
                    "time2": [1, 0, 0, 0, 1],
                    "time3": [0, 0, 0, 1, 0],
                    "outcome": [1, 0, 0, 1, 0]})

我想做的是確定每一列在比例和總和方面與結(jié)果特征的關(guān)系。

目前,我一次只做幾個(gè)專欄,如下所示:

df1 = df1.groupby("outcome")[["time1", "time2", "time3"]].agg(["mean", "sum"]).reset_index()
      
df1[df1["outcome"] == 1].T

這會導(dǎo)致相當(dāng)混亂的數(shù)據(jù)幀,如下所示:

                1
outcome       1.0
time1   mean  0.0
        sum   0.0
time2   mean  0.5
        sum   1.0
time3   mean  0.5
        sum   1.0

如何改進(jìn)此輸出以顯示每列的平均值和各列的總和?類似下面顯示的輸出。

       mean  sum
time1     0    0
time2   0.5    1
time3   0.5    1

理想情況下,我希望對數(shù)據(jù)框架中的數(shù)百列執(zhí)行此操作,并評估它們與結(jié)果的關(guān)系。

那么,有人能給我介紹一個(gè)解決方案嗎?這個(gè)解決方案允許我對數(shù)百列執(zhí)行此操作(不需要單獨(dú)鍵入它們的名稱,這就是解決方案),并生成一個(gè)干凈的數(shù)據(jù)框,如上面的示例輸出所示?非常感謝!

? 最佳回答:

正如@sammywemmy所提到的,我們可以在計(jì)算完這些值之后unstack。我們也可以使用loc而不是reset_index從索引中選擇outcome==1

df1 = (
    df1.groupby("outcome")
        .agg(["mean", "sum"])  # Perform Aggregations
        .loc[1]  # Select outcome==1 from index
        .unstack()  # convert index to columns
)

我們也可以先過濾groupby agg,然后過濾stackdroplevel

df1 = (
    df1[df1["outcome"] == 1]  # Filter DataFrame
        .groupby("outcome")  # Groupby
        .agg(["mean", "sum"])  # Perform Aggregations
        .stack(0)  # Convert columns to rows
        .droplevel(0)  # Drop outcome==1
)

或者set_index+stack首先,然后groupby agg在索引上:

df1 = (
    df1.set_index('outcome').stack()  # Convert time columns to rows
        .groupby(level=[0, 1])  # Groupby
        .agg(['mean', 'sum'])  # Perform Aggregations
        .loc[1]  # Select outcome==1 from index
)

或使用pivot_table和多個(gè)聚合函數(shù):

df1 = (
    df1.pivot_table(index='outcome', aggfunc=['mean', 'sum'])
        .loc[1]  # Select outcome==1 from index
        .unstack(0)  # convert inner index to columns
)

All produce:

       mean  sum
time1   0.0  0.0
time2   0.5  1.0
time3   0.5  1.0
主站蜘蛛池模板: 农村人乱弄一区二区| 国产91精品一区二区麻豆亚洲| 后入内射国产一区二区| 熟女大屁股白浆一区二区| 偷拍激情视频一区二区三区| 色精品一区二区三区| 国产suv精品一区二区33| 人成精品视频三区二区一区 | 国产精品第一区揄拍| 国偷自产一区二区免费视频| chinese国产一区二区| 国产亚洲福利精品一区二区| 亚洲AV无码一区二区三区鸳鸯影院 | 国产午夜精品一区理论片飘花 | 日韩一区二区视频| 色噜噜狠狠一区二区三区果冻| 成人无码AV一区二区| 无码人妻精品一区二区三区99不卡 | 国产成人精品无码一区二区老年人| 91久久精品一区二区| 精品视频一区二区三三区四区| 亚洲视频在线一区| 精品性影院一区二区三区内射| 国产成人AV一区二区三区无码 | 人妻视频一区二区三区免费| 亚洲精品伦理熟女国产一区二区| 人妖在线精品一区二区三区| 99久久精品午夜一区二区| 国产福利一区二区三区视频在线| 99精品一区二区免费视频| 精品欧洲av无码一区二区三区| 亚洲一区二区三区深夜天堂| 国产精品亚洲一区二区麻豆| 色国产在线视频一区| 精品一区二区三区电影| 中文字幕一区二区三区在线播放| 国产内射999视频一区| 极品人妻少妇一区二区三区| 无码视频免费一区二三区| 一区二区视频免费观看| 精品一区二区在线观看|