时序数据
时序的创建
四类时间变量
时间点的创建
1、to_datetime方法
pd.to_datetime('2020.1.1')
pd.to_datetime('2020 1.1')
pd.to_datetime('2020 1 1')
pd.to_datetime('2020 1-1')
pd.to_datetime('2020-1 1')
pd.to_datetime('2020-1-1')
pd.to_datetime('2020/1/1')
pd.to_datetime('1.1.2020')
pd.to_datetime('1.1 2020')
pd.to_datetime('1 1 2020')
pd.to_datetime('1 1-2020')
pd.to_datetime('1-1 2020')
pd.to_datetime('1-1-2020')
pd.to_datetime('1/1/2020')
pd.to_datetime('20200101')
同时,使用列表可以使其转为时间点索引;对于DataFrame而⾔,如果列已经按照时间顺序排好则利⽤to_datetime可⾃动转换。
2、date_range方法
一般来说,start/end/periods(时间点个数)/freq(间隔⽅法)是该⽅法最重要的参数,给定了其中的3个,剩下的⼀个就会被确定。
DateOffset对象
1、DataOffset与Timedelta的区别
Timedelta绝对时间差的特点指⽆论是冬令时还是夏令时,增减1day都只计算24小时;DataOffset相对时间差指,⽆论⼀天是23\24\25小时,增减1day都与当天相同的时间保持一致。
2、DateOffset的可选参数包括years/months/weeks/days/hours/minutes/seconds。
3、序列的offset操作:利用apply函数,直接利用对象加减。
时序的索引及属性
索引切片
子集索引
时间点的属性
重采样
重采样就是指resample函数,它可以看做是时序版本的groupby函数。
窗口函数
rolling
所谓rolling⽅法,就是规定⼀个窗口,它和groupby对象⼀样,本⾝不会进⾏操作,需要配合聚合函数才能计算结果。
expanding函数
1、普通的expanding函数等价与rolling(window=len(s),min_periods=1),是对序列的累计计算。
2、⼏个特别的Expanding类型函数:cumsum/cumprod/cummax/cummin。
s =pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2020',periods=1000))
s.cumsum().head()
s.shift(2).head()
s.diff(3).head()
s.pct_change(3).head()
shift/diff/pct_change都是涉及到了元素关系
①shift是指序列索引不变,但值向后移动
②diff是指前后元素的差,period参数表示间隔,默认为1,并且可以为负
③pct_change是指前后元素的变化百分比,period参数与diff类似