Как получить значение из датафрейма?
Подскажите пожалуйста, как получить определенное значение в колонке "Score"?
models = pd.DataFrame({
'Model' : ['Logistic Regression', 'Decision Tree Classifier', 'GridSearchCV_clf', 'Random Forest Classifier',
'Gradient Boosting Classifier', 'XgBoost'],
'Score' : [lr_acc, dtc_acc, GridSearchCV_clf_acc, rd_clf_acc, gb_acc, xgb_acc]
})
models["Score"] = (models["Score"] * 100).round(2)
models.sort_values(by = 'Score', ascending = False)
Я попробовал вот такой вариант
best_model = models.sort_values(by = 'Score', ascending = False).iloc[:1]
но мне нужно не число, а именно
[lr_acc, dtc_acc, GridSearchCV_clf_acc, rd_clf_acc, gb_acc, xgb_acc]
Ответы (3 шт):
Автор решения: MarianD
→ Ссылка
Добавите еще один столбец 'Name' с именами переменных:
models = pd.DataFrame({
'Model' : ['Logistic Regression', 'Decision Tree Classifier', 'GridSearchCV_clf', 'Random Forest Classifier',
'Gradient Boosting Classifier', 'XgBoost'],
'Score' : [lr_acc, dtc_acc, GridSearchCV_clf_acc, rd_clf_acc, gb_acc, xgb_acc],
'Name': 'lr_acc, dtc_acc, GridSearchCV_clf_acc, rd_clf_acc, gb_acc, xgb_acc'.split(", ")
})
Тогда после ваших команд
models["Score"] = (models["Score"] * 100).round(2)
models.sort_values(by = 'Score', ascending = False)
вы получите например
Model Score Name 4 Gradient Boosting Classifier 1100.0 gb_acc 1 Decision Tree Classifier 1010.0 dtc_acc 2 GridSearchCV_clf 723.0 GridSearchCV_clf_acc 0 Logistic Regression 620.0 lr_acc 5 XgBoost 292.0 xgb_acc 3 Random Forest Classifier 184.0 rd_clf_acc
и после команды
best_model = models.sort_values(by = 'Score', ascending = False).iloc[:1]
будет best_model выглядеть так:
Model Score Name 4 Gradient Boosting Classifier 1100.0 gb_acc
Автор решения: CrazyElf
→ Ссылка
Ещё один вариант:
models.max(axis=0)['Model']
Названия модели вам вполне достаточно, зачем вам название переменной.