数据学习(十七)-时间序列分析和预测实践
程序员文章站
2022-03-09 09:12:18
...
import pandas as pd
import numpy as np
data=pd.read_excel('E:\date.xlsx')
data
#读取数据
结果如下:
处理数据
def getseason(s):
#print(s[5:7])
return s[5:7]
data['季度']=data['日期'].apply(getseason)
def getdate(s):
#print(s[5:7])
return s[0:4]
data['date']=data['日期'].apply(getdate)
data
结果如下:
#将数据按季度进行划分,查看每年该季度的变化趋势
import matplotlib.pyplot as plt
plt.plot(data['传统汽车销量'])
plt.show()
#plt.plot(data[data['季度']=='Q1']['传统汽车销量'])
#plt.show()
#由图可知,汽车销量呈现稳步增长
结果如下:
#第一季度的趋势图
plt.plot(data[data['季度']=='Q1']['传统汽车销量'].reset_index()['传统汽车销量'])
结果如下:
#第2季度的趋势图
plt.plot(data[data['季度']=='Q2']['传统汽车销量'].reset_index()['传统汽车销量'])
结果如下:
#第3季度的趋势图
plt.plot(data[data['季度']=='Q3']['传统汽车销量'].reset_index()['传统汽车销量'])
结果如下:
#第4季度的趋势图
plt.plot(data[data['季度']=='Q4']['传统汽车销量'].reset_index()['传统汽车销量'])
结果如下:
#1. 假设用简单平均法计算三期的值
#第二季度
Y1=data[data['季度']=='Q2']['传统汽车销量'].mean()
print("第一期:{}".format(Y1))
#第三季度
Y2=data[data['季度']=='Q3']['传统汽车销量'].mean()
print("第二期:{}".format(Y2))
#第四季度
Y3=data[data['季度']=='Q4']['传统汽车销量'].mean()
print("第三期:{}".format(Y3))
结果如下:
# 移动平均法求预测值
#(1)简单移动平均 ,当k=3时
#第二季度
Y1=data[data['季度']=='Q2']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第一期:{}".format(Y1))
#第三季度
Y2=data[data['季度']=='Q3']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第二期:{}".format(Y2))
#第四季度
Y3=data[data['季度']=='Q4']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第三期:{}".format(Y3))
结果如下:
#划分数据集
Q1=data[data['季度']=='Q1']['传统汽车销量'].reset_index()
Q2=data[data['季度']=='Q2']['传统汽车销量'].reset_index()
Q3=data[data['季度']=='Q3']['传统汽车销量'].reset_index()
Q4=data[data['季度']=='Q4']['传统汽车销量'].reset_index()
#加入测试集
k=[]
for i in range(data.shape[0]):
k.append(i)
data['index']=k
test=pd.DataFrame([65,66,67],columns=['index'])
test
#趋势预测
#(1)线性预测 y=ax+b
label=data[['传统汽车销量']]
x=data[['index']]
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(x,label)
test['传统汽车销量']=lr.predict(test[['index']])
结果如下:
上一篇: SQL SERVER触发器
下一篇: SQL Server 触发器