时间序列数据中,有一种在会计、金融等领域中常用等统计方法,也就是按季度对时间序列进行频率统计。python库pandas中提供快速完成该目标对方法。本文进行详细介绍,具体如下:
1.按季度计算的时期频率
季度型数据在会计、金融等领域中很常见。Pandas支持12种可能的季度型频率,即Q-JAN到Q-DEC:
(1)Period之间的算术
(2)period_range用于生成季度型范围
2.将Timestamp转换为Period(及其反向过程)
通过使用to_period方法,可以将由时间戳索引的Series和DataFrame对象转换为以时期索引:
(1)使用to_period方法
In [194]: pts=ts.to_period()
In [195]: pts
Out[195]:
2019-01 1.198952
2019-02 0.704858
2019-03 0.346402
Freq: M, dtype: float64
由于时期指的是非重叠时间区间,因此对于给定的频率,一个时间戳只能属于一个时期。新PeriodIndex的频率默认是从时间戳推断而来的,也可以指定任何别的频率。结果中允许存在重复时期:
In [196]: rng=pd.date_range('1/1/2019',periods=6,freq='D')
In [197]: rng
Out[197]:
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
'2019-01-05', '2019-01-06'],
dtype='datetime64[ns]', freq='D')
In [198]: ts2=Series(np.random.randn(6),index=rng)
In [199]: ts2.to_period('M')
Out[199]:
2019-01 -0.461028
2019-01 -1.328198
2019-01 0.976847
2019-01 -2.318017
2019-01 -0.913165
2019-01 0.113808
Freq: M, dtype: float64
(2)要转换为时间戳,使用to_timestamp
即可:
In [203]: pts=ts.to_period()
In [204]: pts
Out[204]:
2019-01 1.198952
2019-02 0.704858
2019-03 0.346402
Freq: M, dtype: float64
In [205]: pts.to_timestamp(how='end')
Out[205]:
2019-01-31 23:59:59.999999999 1.198952
2019-02-28 23:59:59.999999999 0.704858
2019-03-31 23:59:59.999999999 0.346402
Freq: M, dtype: float64
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」