У меня есть следующий фреймворк:
data = {'Algorithm': ['KNN', 'Decision Tree', 'SVM', 'Logistic Regression'],
'Jaccard': [0.75,0.65,0.67,0.70],
'F1-score': [0.69,0.78, 0.75, 0.77],
'LogLoss': ['NA', 'NA', 'NA', 5.23]}
report= pd.DataFrame(data = data)
report = report[['Algorithm', 'Jaccard', 'F1-score', 'LogLoss']]
report.set_index(report['Algorithm'], inplace = True)
report.drop(columns = ['Algorithm'], inplace = True)
Я хочу, чтобы напечатать имя индекса с наивысшим значением в dafaframe. Это было бы примерно так:
print(report['Jaccard'][index_name_with_highest_value])
он должен давать:
'KNN'
Заранее спасибо :)
Попробуйте np.where
:
print(report.index[np.where(report['Jaccard'].max())[0][0]])
Обновлено Попробуйте np.where
:
print(report['Algorithm'][np.where(report['Jaccard'].max())[0][0]])
Или idxmax
:
print(report['Jaccard'].idxmax())
Обновить:
print(report['Algorithm'][np.where(report['Jaccard']==report['Jaccard'].max())[0][0]])
Решение @jezrael тоже очень хорошо:
print(report.index[report['Jaccard'] == report['Jaccard'].max()])
print (report['Jaccard'].idxmax())