Получение имени индекса для максимального значения в DF

1

У меня есть следующий фреймворк:

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'

Заранее спасибо :)

  • 1
    Используйте print (report['Jaccard'].idxmax())
  • 0
    ПРОСТО РЕДАКТИРОВАЛ УТВЕРЖДАЮЩИЙ КРОНШТЕЙН '' 'В КОНЦЕ СТРОКИ' F1-SCORE '
Показать ещё 1 комментарий
Теги:
pandas
indexing
max

1 ответ

2
Лучший ответ

Попробуйте 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()])
  • 1
    Привет, это не работает, так как «Алгоритм» больше не является столбцом, это имя индекса столбца.
  • 0
    @ Miguel2488 Отредактированный мой
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню