Excel

pandas versus Excel 学习笔记17(线性回归,数据预测)

python

pandas versus Excel 学习笔记17(线性回归,数据预测)在excel中month中间有点,python会默认识别为浮点类型的值

因此将其读取为string

sales=pd.read_excel('024/Sales.xlsx',dtype={'Month':str})

 

import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import linregress
sales=pd.read_excel('024/Sales.xlsx',dtype={'Month':str})
print(sales)
slope,intercept,r,p,std_err=linregress(sales.index,sales.Revenue)
#slope斜率,intercept截距
exp=sales.index*slope+intercept
plt.scatter(sales.index,sales.Revenue)
plt.plot(sales.index,exp,color='orange')
plt.title('Sales')
plt.xticks(sales.index,sales.Month,rotation=90)
plt.tight_layout()
plt.show()

pandas versus Excel 学习笔记17(线性回归,数据预测)

拟合方程:

plt.title(f"y={slope}*X+{intercept}")

pandas versus Excel 学习笔记17(线性回归,数据预测)

print(sales)
Out[4]: 
      Month    Revenue
0   2017.01   5.219502
1   2017.02   4.075924
2   2017.03  13.240190
3   2017.04   6.928844
4   2017.05  15.120419
5   2017.06   9.608529
6   2017.07  22.746334
7   2017.08  27.489305
8   2017.09  17.510031
9   2017.10  17.220169
10  2017.11  15.156002
11  2017.12  39.025900
12  2018.01  18.739449
13  2018.02  29.785448
14  2018.03  20.607362
15  2018.04  35.445472
16  2018.05  61.789251
17  2018.06  57.701989
18  2018.07  66.667342
19  2018.08  38.202189
20  2018.09  57.062463
21  2018.10  56.046796
22  2018.11  43.465649
23  2018.12  59.056942

预测2019年12月数据,index为35

print(slope*35+intercept)
Out[3]: 88.76404338671654

 

 

相关文章:

  • 2021-10-08
  • 2022-12-23
  • 2021-10-11
  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2021-04-09
猜你喜欢
  • 2021-10-16
  • 2022-12-23
  • 2021-07-28
  • 2021-12-22
  • 2022-01-06
相关资源
相似解决方案