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

第十章 时间序列

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

  • datetime 以毫秒形式存储日期和时间

字符串和datetime的互相转换

  • str:将datetime对象和pandas的Timestamp对象转换为字符串
  • strptime:将字符串转化为日期

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

生成日期范围

  • date_range
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')
  • WOM是一个非常实用的频率类
# 获得“每月第三个星期五”
pd.date_range('1/1/2000', periods=10, freq='WOM-3FRI')

移动(超前和滞后)数据

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

  • shift
    通常计算一个时间序列或多个时间序列中的百分比变化


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

重采样及频率转换

  • resampling
    将时间序列从一个频率转换到另一个频率的过程
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()

你可能感兴趣的:(《利用python进行数据分析》第十章)