4 回答
TA贡献1886条经验 获得超2个赞
使用,Series.eq
创建一个布尔掩码,然后使用此掩码以及Series.idxmax
获取指标所在index
列中的最大值,最后使用此索引获取相应的:Value
AUC
Model
ind =df.loc[df['Metric'].eq('AUC'), 'Value'].idxmax()
model = df.loc[ind, 'Model']
结果:
print(model)
'Random_Forest'
TA贡献1789条经验 获得超8个赞
除了其他答案,您还可以考虑df
按max()
所有'Metric'
行对您进行分组:
df.groupby(['Metric'], as_index=False)['Value','Model'].max()
然后你也可以.query()
为“AUC”指标的“模型”列:
df.groupby(['Metric'], as_index=False)['Value','Model'].max().query('Metric == "AUC"')['Model']
TA贡献1820条经验 获得超9个赞
干得好:
df.loc[df.Metric == 'AUC', ['Value', 'Model']].max()['Model']
## -- End pasted text --
Out[1]: 'Random_Forest'
TA贡献1853条经验 获得超18个赞
如果你想用基础知识来做,那么:
empty_value_list=[]
for i,j in zip(df['Metric'],df['Value']):
if i=='AUC':
empty_value_list.append(j)
max_value=max(empty_value_list)
for i,j,k in zip(df['Metric'],df['Value'],df['Model'])
if i=='AUC' and j==max_value:
print(k)
Out[1]: 'Random_Forest'
添加回答
举报