【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做分组,重复的值这里用平均值处理
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!