《利用python进行数据分析》第十章

2019-08-14  本文已影响0人  大美mixer

第十章 时间序列

日期和时间数据类型及工具

字符串和datetime的互相转换

日期的范围、频率以及移动

生成日期范围

index = pd.date_range('4/1/2012','6/1/2012')
# 默认按天计算
pd.date_range(start='4/1/2012', periods=20)
pd.date_range(end='6/1/2012', periods=20)
#传入频率,得到符合要求的日期
pd.date_range('1/1/2000', '12/1/2000', freq='BM') #'BM'表示bussiness end of month,即每月最后一个工作日

频率和日期偏移量

pandas中频率由一个基础频率和一个乘数组成。

hour = pd.Hour()
four_hour = Hour(4)
minutes_150 = Hour(2) + Minute(30)
#也可传入频率字符串
pd.date_range('1/1/2000', periods=10, freq='1h30min')
# 获得“每月第三个星期五”
pd.date_range('1/1/2000', periods=10, freq='WOM-3FRI')

移动(超前和滞后)数据

移动:沿着时间轴将数据前移或者后移

ts / ts.shift(1) - 1
由于单纯的移位操作不会修改索引,因此部分数据会被丢弃。如果频率一致,则可以将其传给shift以便实现对时间戳进行移位而不是对数据进行简单移位。

重采样及频率转换

rng = pd.date_range('1/1/2000', periods=100, freq='D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
ts.resample('M').mean()
# OHLC重采样
ts.resample('M').ohlc()
上一篇 下一篇

猜你喜欢

热点阅读