美文网首页
《利用python进行数据分析》第十章

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

作者: 大美mixer | 来源:发表于2019-08-14 17:31 被阅读0次

    第十章 时间序列

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

    • 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
      通常计算一个时间序列或多个时间序列中的百分比变化

    ts / ts.shift(1) - 1
    由于单纯的移位操作不会修改索引,因此部分数据会被丢弃。如果频率一致,则可以将其传给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进行数据分析》第十章

          本文链接:https://www.haomeiwen.com/subject/ftsnjctx.html