zoukankan      html  css  js  c++  java
  • 【Python数据分析】时间序列切片与索引

    1.时间序列的索引与切片

    1.1 索引

    # Author:Logan
    from datetime import datetime
    import pandas as pd
    import numpy as np
    
    rng = pd.date_range('2017/1','2017/3')
    ts = pd.Series(np.random.rand(len(rng)), index = rng)
    print(ts.head())
    
    print(ts[0])
    print(ts[:2])
    print('-' * 50)
    # 基本下标位置索引
    
    print(ts['2017/1/2'])
    print(ts['20170103'])
    print(ts['1/10/2017'])
    print(ts[datetime(2017,1,20)])
    print('-' * 50)
    # 时间序列标签索引,支持各种时间字符串,以及datetime.datetime
    
    # 时间序列由于按照时间先后排序,故不用考虑顺序问题
    # 索引方法同样适用于Dataframe
    

    1.2 切片

    # 切片
    import pandas as pd
    import numpy as np
    
    rng = pd.date_range('2017/1','2017/3',freq = '12H')
    ts = pd.Series(np.random.rand(len(rng)), index = rng)
    
    print(ts['2017/1/5':'2017/1/10'])
    print('-----')
    # 和Series按照index索引原理一样,也是末端包含
    
    print(ts['2017/2'].head())
    # 传入月,直接得到一个切片
    

    2.重复索引的时间序列

    # Author:Logan
    # 重复索引的时间序列
    import pandas as pd
    import numpy as np
    
    dates = pd.DatetimeIndex(['1/1/2015','1/2/2015','1/3/2015','1/4/2015','1/1/2015','1/2/2015'])
    ts = pd.Series(np.random.rand(6), index = dates)
    print(ts)
    print('-' * 50)
    print(ts.is_unique)
    print('*' * 50)
    print(ts.index.is_unique)
    print('-' * 50)
    # index有重复,is_unique检查 → values唯一,index不唯一
    
    print(ts['20150101'],type(ts['20150101']))
    print(ts['20150104'],type(ts['20150104']))
    print('*' * 50)
    # index有重复的将返回多个值
    
    print(ts.groupby(level = 0).mean())
    # 通过groupby做分组,重复的值这里用平均值处理
    
  • 相关阅读:
    PHP自动加载(__autoload和spl_autoload_register)
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    组合
    二叉树的层次遍历 II
    umask命令
    二叉树的所有路径
    CDN缓存的理解
    Js中RegExp对象
  • 原文地址:https://www.cnblogs.com/OliverQin/p/12284086.html
Copyright © 2011-2022 走看看