EXCLE中读出数据,并对数据进行拟合

在使用python进行实验的同时,需要先安装我们在程序设计中所需要的包,可从https://pypi.org/上进行下载,下载版本注意与python版本一致。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import linear_model
import xlrd
 # 打开文件
workbook = xlrd.open_workbook(r'C:\Users\uesrname\Desktop\xlsxname.xlsx')

#可以根据sheet索引或者名称获取sheet内容,以下两种方法都行
#sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
sheet1 = workbook.sheet_by_name('Sheet1')

#获取该sheet1总行数和列数
#print(sheet1.nrows,sheet1.ncols)
cols = list(sheet1.col_values(1))    # 获取第二列内容
cols1 = cols[1:]                     #去除第一行内容,因为我不需要第一行数据,实际情况可用printf函数打印出cols来进行取舍
len1 = len(cols1)                    #得到该列处理数据的个数

#调用线性回归函数
reg=linear_model.LinearRegrsession(fit_intercept=True,normalize=False)

#创建一个二维列表
L1 = []
for x in range(0,117,1):
	L1.append([])
	y=x+1
	L1[x].append(y)
#得到点的横坐标和纵坐标,注意:数据个数需保持一致
x = L1          #必须要是二维列表与y对应
y = cols1
#拟合
reg.fit(x,y)

k=reg.coef_#得到斜率
b=reg.intercept_#获取截距
print(k,b) #打印出斜率和截距
#得到需作拟合线的x0,y0,其中np.arange的参数为(起始点,终止,步长)
x0=np.arange(0,117,1)
y0=k*x0+b

plt.scatter(x0,y)  #描点函数
plt.plot(x0,y0)    #划线函数
plt.show()         #显示图像

经验证能够实现从excle中导出数据,并对其进行线性回归分析,如下所示:
这里写图片描述
可得其回归方程为:y=32.41002413x+3171.3812260536392

猜你喜欢

转载自blog.csdn.net/qq_38689334/article/details/81457014