Pandas玩转数据(八) -- 时间序列简单操作

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

Pandas玩转数据(八) -- 时间序列简单操作_第1张图片

s1 = Series(np.random.rand(5), index=date_list) ##使用时间序列作为索引
s1 ##打印Series

Pandas玩转数据(八) -- 时间序列简单操作_第2张图片

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年的时间序列

Pandas玩转数据(八) -- 时间序列简单操作_第3张图片

s1['2016']

s1

Pandas玩转数据(八) -- 时间序列简单操作_第4张图片

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

Pandas玩转数据(八) -- 时间序列简单操作_第5张图片

s2.plot(color='g') ##稍微玩一下画图

Pandas玩转数据(八) -- 时间序列简单操作_第6张图片

# -*- 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(旋转度)等,绘制图形如下所示:

Pandas玩转数据(八) -- 时间序列简单操作_第7张图片

Pandas玩转数据(八) -- 时间序列简单操作_第8张图片

你可能感兴趣的:(python)