经过一些分组操作后,我有一个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
...
因此,现在我想捕获,method
该给出每个的最小值(第三列)dataset
。
我怎样才能做到这一点?
您可以将groupby
withidxmin
用于每组MultiIndex
按minimal
值的值,并选择元组的第二个值add 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句