首页 > 解决方案 > 如何从变量制作数据框?

问题描述

我有一个像这样打印的代码:

print('Logistic Regression')
print('Data Train :', logreg.score(X,y))
print('Data Test :', logreg.score(X_test,y_test))
print('KNN')
print('Data Train :', knn.score(X,y))
print('Data Test :', knn.score(X_test,y_test))

输出是:

Logistic Regression

Data Train : 0.7171072127066912 

Data Test :
0.7219339324136186

KNN

Data Train : 0.9711521365495169

Data Test : 0.8530565751170738 

我怎样才能使它成为这样的数据框:

逻辑回归 神经网络
数据火车 0.7171072127066912 0.9711521365495169
数据测试 0.7219339324136186 0.8530565751170738

标签: pythonpandasdataframe

解决方案


您可以通过列表理解轻松实现这一目标。

models = [logreg, knn]
model_names = ['Logistic Regression', 'KNN']
pd.DataFrame(
    data=[
        [model.score(a, b) for (a,b) in [(X, y), (X_test, y_test)]] 
            for model in models
    ], index=['Data Train', 'Data Test'], columns=model_names)

当您想包含更多模型时,只需将您的modelsmodel_names变量更新为;

models = [logreg, knn, dt, rf, xgb]
model_names = ['Logistic Regression', 'KNN', 'Decision Tree', 'Random Forest', 'XGBoost']

并保持后半部分完全相同。


推荐阅读