Python3数据科学汇总: https://blog.csdn.net/weixin_41793113/article/details/99707225
一. 时间序列基础知识
社会经济现象总是随着时间的推移而变迁,呈现动态性。一个或一组变量x(t)进行观测,将在一系列时刻t1、t2、...、tn得到离散数字组成的序列集合,称之为时间序列。通过时间序列算法,我们对事物进行动态的研究。
时间序列表示按时间先后顺序排列的数列,通常X轴为时间要素,Y轴为数据要素,比如1986-2000年的人均GDP为y1、y2、...、yn,再如下图所示太阳黑子运动规律。
指标通常包括时期指标(年度、月度)和时点指标(时刻)。时间序列分为以下三类:
1.随机性时间序列:各指标变动受随机因素影响
2.平稳时间序列:基本稳定在某个水平附近波动
3.非平稳时间序列:存在某种规律性变动,比如趋势性、季节性
时间序列常用的特征统计量如下所示:(参考:百度文库)
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
from datetime import datetime
t1 = datetime(2009,10,20)
t1
date_list = [
datetime(2016,9,1),
datetime(2016,9,10),
datetime(2017,9,1),
datetime(2017,9,20),
datetime(2017,10,1)
] ##python的list
date_list
s1 = Series(np.random.rand(5), index=date_list) ##使用时间序列作为索引
s1 ##打印Series
s1.values #查看Series的值
s1.index ##查看Series的索引
s1[1]
s1[datetime(2016,9,10)]
##可以发现用索引0,1和使用时间序列查找的都是同一个
s1['20160910'] ##省略'-'也是可以的
s1['2017-09'] ##返回多个2017-09-xx的日期
s1['2017'] ##返回2017年的时间序列
s1['2016']
s1
date_list_new = pd.date_range('2016-01-01', periods=100, freq='5H')
##利用pandas生成时间序列,从2016-01-01开始,生成个数100个,每隔5h生成一个
s2 = Series(np.random.rand(100), index=date_list_new) ##时间序列作为索引
s2
s2.plot(color='g') ##稍微玩一下画图
# -*- coding: cp936 -*-
import pandas as pd
import numpy as np
a = np.random.standard_normal((9,4))
df = pd.DataFrame(a)
df.columns = ["No1", "No2", "No3", "No4"]
dates = pd.date_range('2015-1-1',periods=9,freq='M')
df.index = dates
df.cumsum()
df.plot(lw=2.0)
主要调用plot方法,参数包括x、y、title、grid(表格线)、ax、legend、kind(图形类型,kde/line/bar/barh)、logx、yticks(刻度)、xlim(界限)、rot(旋转度)等,绘制图形如下所示: