数据学习(十七)-时间序列分析和预测实践

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']])

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值