在Jupyter笔记本中打印表

时间:2017-03-12 18:12:22

标签: python pandas jupyter

如何打印3列表(索引,协方差矩阵,均方误差)?

from sklearn import linear_model # Machine Learning tool
import numpy as np # Mathematics and Linear Algebra tool
import pandas as pd # data structure tool
import matplotlib.pyplot as plt # scientific plotting tool
import seaborn as sns # # scientific plotting tool
%matplotlib inline

from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error

diabetes = datasets.load_diabetes() # Load the diabetes dataset
n = 10 # 10 datasets for analysis
y_train = diabetes.target[:-20]
y_test = diabetes.target[-20:]
MSE = np.empty([n,1]) # mean square error
COV = [None] * n # covariance
regr = [None] * n
table= [None] * n
for i in range(n):
    x = diabetes.data[:, np.newaxis, i] # select feature from dataset
    x_train = x[:-20]
    x_test = x[-20:]
    regr[i] = linear_model.LinearRegression()
    regr[i].fit(x_train, y_train)
    y_predict = regr[i].predict(x_test)
    MSE[i] = mean_squared_error(y_predict, y_test)
    COV[i] = np.cov(x_train.T, np.reshape(y_train,[422,1]).T)
    table[i] = [i, MSE[i], COV[i]]
    print(table[i])

矩阵table包含所有必要的内容。但是我如何调整它以使其可以理解?不需要闪亮的LaTeX,但可以使用。

1 个答案:

答案 0 :(得分:1)

改为使用pandas.DataFrame():

import pandas as pd

df = pd.DataFrame()
a=range(10)
b=range(10,20)
c=range(20,30)
df['a']=a
df['b']=b
df['c']=c

df
   a   b   c
0  0  10  20
1  1  11  21
2  2  12  22
3  3  13  23
4  4  14  24
5  5  15  25
6  6  16  26
7  7  17  27
8  8  18  28
9  9  19  29

或者一下子:

df = pd.DataFrame({'a': a, 'b': b, 'c': c})

df
   a   b   c
0  0  10  20
1  1  11  21
2  2  12  22
3  3  13  23
4  4  14  24
5  5  15  25
6  6  16  26
7  7  17  27
8  8  18  28
9  9  19  29