在doubleindex Groupby Datafram中查找具有最小值的内部索引

2024-09-28 22:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Pandas数据框,经过一些groupy操作后,如:

df.groupby(["dataset", "method"])["mae"].mean()

它看起来像:

dataset             method
acute.a             AC        0.003516
                    EDX       0.028901
                    EDy       0.029160
                    HDX       0.040332
                    HDy       0.027015
acute.b             AC        0.003575
                    EDX       0.043130
                    EDy       0.029151
                    HDX       0.016335
                    HDy       0.003692
balance.1           AC        0.012195
                    EDX       0.019322
                    EDy       0.010015
                    HDX       0.018285
                    HDy       0.009011
balance.2           AC        0.179619
                    EDX       0.259377
                    EDy       0.497555
                    HDX       0.444765
                    HDy       0.435202
balance.3           AC        0.028937
                    EDX       0.034840
                    EDy       0.014509
                    HDX       0.037650
                    HDy       0.014660
breast-cancer       AC        0.005540
                    EDX       0.007067
                    EDy       0.006252
                    HDX       0.012012
                    HDy       0.005629
                                ...  

现在我想捕获method,它为每个dataset提供最小值(第三列)

我该怎么做


Tags: 数据pandasdfmeandatasetmethodacedx
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:18

您可以使用^{}^{}来表示每个组的MultiIndex值和minimal值,并为元组的选择第二个值添加str[1]

s = df.groupby(["dataset", "method"])["mae"].mean()

s1 = s.groupby(level=0).idxmin().str[1]
print (s1)
dataset
acute.a           AC
acute.b           AC
balance.1        HDy
balance.2         AC
balance.3        EDy
breast-cancer     AC
Name: mae, dtype: object

如果还需要通过^{}选择值:

s2 = s.loc[s.groupby(level=0).idxmin()]
print (s2)
dataset        method
acute.a        AC        0.003516
acute.b        AC        0.003575
balance.1      HDy       0.009011
balance.2      AC        0.179619
balance.3      EDy       0.014509
breast-cancer  AC        0.005540
Name: mae, dtype: float64

相关问题 更多 >