簡體   English   中英

使用pandas groupby和aggregate后使用MultiIndex訪問列

[英]Accessing columns with MultiIndex after using pandas groupby and aggregate

我正在使用df.groupby()方法:

g1 = df[['md', 'agd', 'hgd']].groupby(['md']).agg(['mean', 'count', 'std'])

它產生的正是我想要的!

         agd                       hgd                
        mean count       std      mean count       std
md                                                    
-4  1.398350     2  0.456494 -0.418442     2  0.774611
-3 -0.281814    10  1.314223 -0.317675    10  1.161368
-2 -0.341940    38  0.882749  0.136395    38  1.240308
-1 -0.137268   125  1.162081 -0.103710   125  1.208362
 0 -0.018731   603  1.108109 -0.059108   603  1.252989
 1 -0.034113   178  1.128363 -0.042781   178  1.197477
 2  0.118068    43  1.107974  0.383795    43  1.225388
 3  0.452802    18  0.805491 -0.335087    18  1.120520
 4  0.304824     1       NaN -1.052011     1       NaN

但是,我現在想像“普通”數據框一樣訪問 groupby 對象列。

然后我將能夠:1)計算agdhgd均值上的誤差 2)在md (x 軸)與agd meanhgd mean )上繪制散點圖,並添加適當的誤差條。

這可能嗎? 也許通過玩索引?

1)您可以重命名列並照常進行(將擺脫多索引)

g1.columns = ['agd_mean', 'agd_std','hgd_mean','hgd_std']

2)您可以保持多索引並依次使用兩個級別( 文檔

g1['agd']['mean count']

可以執行您正在搜索的操作,這稱為transform 您將在此處的 Pandas 文檔中找到一個完全符合您搜索要求的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM