Python 为回归结果创建数据框表

Python 为回归结果创建数据框表,python,dataframe,regression,Python,Dataframe,Regression,我试图建立一个函数,计算每个回归器的R2和RMSE def apply_regressor_test(regressor, X_train, y_train, X_test, y_test, name): r2= [] RMSE = [] reg_name = [] regressor.fit(X_train, y_train) y_pred = regressor.predict(X_test) cor = r2_score(y_test, y_pred) r = np.sqrt(

我试图建立一个函数,计算每个回归器的R2和RMSE

def apply_regressor_test(regressor, X_train, y_train, X_test, y_test, name):

r2= []
RMSE = []
reg_name = []

regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)



cor = r2_score(y_test, y_pred)

r = np.sqrt(mean_squared_error(y_test, y_pred)

r2.append(cor)
RMSE.append(r)
reg_name.append(name)

df = pd.DataFrame({'R2': r2, 'RMSE': RMSE}, index = reg_name)

return df
我希望能够得到一个表格,将每个回归的结果结合起来。我试图创建另一个数据框来附加函数的结果。我最后得到的是这个

regressor = LinearRegression() 
df = apply_regressor_test(regressor, X_train_full_ss, y_train_full, X_test_ss, y_test, name = str(regressor))
df_results.append(df)
df_results

# This is what I get: 
 Out[306]:
 [                          R2      RMSE
  LinearRegression()  0.643291  1.344363,
                            R2      RMSE
  RandomForestRegressor()  0.761544  1.099167,
             R2      RMSE
  SVR()  0.706637  1.219165]
如何在只有一个列标题的表中创建它


感谢@Raphael在评论中的回答。我通过concat返回的dfs实现了它

pd.concat([df1, df2, df3], axis=0)

在我看来,您似乎正在将数据帧添加到数据帧列表
df_结果
。顺便说一句。如果你能减少你的代码中的关键部分,那会有很大的帮助。扪心自问:代码的哪一部分对于重现您的问题是真正必要的,哪些部分可以被虚拟函数替换。是的,我单独调用每个函数(而不是for循环)。我将结果作为df得到,然后将其附加到df_结果中。如果没有这些,怎么做呢?将df_结果定义为一个数据帧,其列与回归器数据帧及其相关列相同。最简单的方法是。要将数据帧列表连接成一个,请使用。在您的情况下,它只是
pd.concat(df\u结果)