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'
添加回答
舉報