时间序列

0.

时间戳 timestamp  指一个特定的时刻

固定时期  period    指一段时间

时间间隔  intercal  由起始时间戳和结束时间戳表示

常用的模块有 datetime  time  calendar

 

1.

时间序列_第1张图片

时间序列_第2张图片

d是这两个时间戳的间隔,然后一共差了4k多天零7w多秒

timedelta(日,秒,毫秒) 可以跟日期做加减法,自身也可以做乘除法

时间序列_第3张图片

 

2.

时间序列_第4张图片

这是把时间戳换成str的两个方法

时间序列_第5张图片

从字符串改到datetime格式,教材上说两个方法 都不行

一个是v='2011-1-1'

dt.datetime.strptime(v,'格式化格式')

但这个strptime怎么用不了。。。

一个是pandas附带的dateutil包中的parser.parse

这个能自动解析时间格式 不用上边那个格式化格式了就 比较方便

他有个dayfirst参数 如果=True  那么读取str时候就是日在月前边

时间序列_第6张图片

s是前边一个date

然后这个pd.to_datetime 可以做一个时间戳的索引

时间序列_第7张图片

 

3.

pd.Series和时间戳的联系是这样的

时间序列_第8张图片

时间序列_第9张图片

也可以分组进行查看

时间序列_第10张图片

这一开始弄错了  然后发现这个date_range(频率是1000就代表了1000天)

时间序列_第11张图片

时间序列_第12张图片

也可以切片

假如时间不是连续的也可以切

如果他是df的索引 一样可以切

如果日期有重复的  

首先想知道有没有重复

ts.index.is_unique

返回的False就是重复的

可以用groupby合并

groupby的参数要有一个level=0

 

4.

一般的时间序列并不是规整的

但是要对这些不规整的数据进行定同样时段的分析

就像是每天每月每小时

时间序列_第13张图片

 

4.5

pd.date_range(起始时间,结束时间,period=多长时间)

这三个要有两个

pd.date_range(起始时间,结束时间,period=多长时间,freq=‘BM’)

BM是月底

时间序列_第14张图片

时间序列_第15张图片

date_range会保留起始和结束时间戳

 

5.

有一个东西叫频率

像是每天 每小时  这些是基础频率

然后每三天  就是3*D  这个叫偏移量

from  pandas.tseries.offsets  import  Hour,Minute

Hour(4)  就代表了四个小时  会输出   <4*Hour>

但是一般不这么做

一般就 ‘4H’ 就妥了

基础频率前边放一个整数  就可以创建倍数了

Hour(2)+Minute(30)   会输出<150*Minutes>

像是‘2h3min’也可以

时间序列_第16张图片

 

6.

WOM日期是一个freq

他可以freq=‘WOM-3FRI’  从起始到结束的每月第三个星期五

 

7.

可以通过shift函数将数据沿着时间轴前进或者后退

这其实是Series和df都有的

ts.shift(2)  上边的数据向下挪2个位置 上边空的就变成了NaN

ts.shift(-2) 下边的数据向上挪2个位置 下边空的就变成了NaN

ts.shift(2,freq='M')  数据不动 时间轴上的时间会改变

 

8.

 

 

 

 

 

你可能感兴趣的:(period)