Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从变量生成数据帧?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何从变量生成数据帧?

Python 如何从变量生成数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个这样打印的代码: 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 Regr

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

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 
如何使其成为这样的数据帧:

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))
对数几率回归 KNN 数据列 0.7171072127066912 0.9711521365495169 数据测试 0.7219339324136186 0.8530565751170738
通过列表理解,您可以轻松做到这一点

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)
当你想包含更多的模型时,你只需更新你的
模型
模型名称
变量即可

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

并保持后面的部分完全相同。

通过列表理解,您可以轻松做到这一点

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)
当你想包含更多的模型时,你只需更新你的
模型
模型名称
变量即可

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

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

如果只有这两种型号,您可以使用:

将熊猫作为pd导入
df=pd.DataFrame({“逻辑回归”:[logreg.score(X,y),logreg.score(X_检验,y_检验)],“KNN”:[KNN.score(X,y),KNN.score(X_检验,y_检验)],指数=[“数据序列”,“数据检验])

如果只有这两种型号,您可以使用:

将熊猫作为pd导入
df=pd.DataFrame({“逻辑回归”:[logreg.score(X,y),logreg.score(X_检验,y_检验)],“KNN”:[KNN.score(X,y),KNN.score(X_检验,y_检验)],指数=[“数据序列”,“数据检验])

谢谢,工作很好。但是它只能有2个变量,如何使用更多的变量呢?我尝试过:pd.DataFrame(数据=[[model.score(a,b,c,d,e)for(a,b,c,d,e)in[(X,y),(X_检验,y_检验)]]for[logreg,knn,dt,rf,xgb]]中的模型,索引=['data Train',data test'],列=['Logistic回归','knn','Decision Tree','Random Forest','XGBoost'])这个想法是正确的,但我想你在定义上有点迷失了。正如您在我所写的答案中看到的,各个模型采用变量
model
。因此,内部列表不会更改,只需附加
model
变量。让我更新我的答案更清楚。谢谢,工作完美。但是它只能有2个变量,如何使用更多的变量呢?我尝试过:pd.DataFrame(数据=[[model.score(a,b,c,d,e)for(a,b,c,d,e)in[(X,y),(X_检验,y_检验)]]for[logreg,knn,dt,rf,xgb]]中的模型,索引=['data Train',data test'],列=['Logistic回归','knn','Decision Tree','Random Forest','XGBoost'])这个想法是正确的,但我想你在定义上有点迷失了。正如您在我所写的答案中看到的,各个模型采用变量
model
。因此,内部列表不会更改,只需附加
model
变量。让我更新我的答案,使之更清楚。