gpt4 book ai didi

python - 在双索引 Groupby Dataframe 中查找最小值的内部索引

转载 作者:行者123 更新时间:2023-12-01 01:51:19 25 4
gpt4 key购买 nike

我有一个 Pandas DataFrame,经过一些分组操作后,例如:

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
...

现在我想捕获为每个数据集提供最小值(第三列)的方法

我怎样才能做到这一点?

最佳答案

您可以使用groupbyidxmin对于每组 minimal 值的 MultiIndex 值,以及选择元组的第二个值,添加 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

如果需要还可以通过 loc 选择值:

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

关于python - 在双索引 Groupby Dataframe 中查找最小值的内部索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com