微信公众号:数据皮皮侠
关注可了解更多的教程及排版技巧。问题或建议,请公众号留言;
**[如果你觉得公众号的推文对你和朋友有帮助,欢迎关注和推广]内容目录:时间序列的Python实现
时间序列 简介一、创建时间序列1.1 date_range1.2 truncate过滤
时间序列 简介
一、创建时间序列
1.1 date_range
可以指定开始时间与周期
H:小时
D:天
M:月
1import pandas as pd
2import numpy as np
从2016-07-01开始,周期为10,间隔为3天,生成的时间序列为下:
1rng = pd.date_range('2016-07-01', periods = 10, freq = '3D')
2rng
1DatetimeIndex(['2016-07-01', '2016-07-04', '2016-07-07', '2016-07-10',
2 '2016-07-13', '2016-07-16', '2016-07-19', '2016-07-22',
3 '2016-07-25', '2016-07-28'],
4 dtype='datetime64[ns]', freq='3D')
其中,起始日期也可以写成’2016 Jul 1’、‘7/1/2016’、‘1/7/2016’、‘2016-07-01’、'2016/07/01’中的任何一种形式:
1# TIMES #2016 Jul 1 7/1/2016 1/7/2016 2016-07-01 2016/07/01
2rng = pd.date_range('2016 Jul 1', periods = 10, freq = '3D')
3rng
1DatetimeIndex(['2016-07-01', '2016-07-04', '2016-07-07', '2016-07-10',
2 '2016-07-13', '2016-07-16', '2016-07-19', '2016-07-22',
3 '2016-07-25', '2016-07-28'],
4 dtype='datetime64[ns]', freq='3D')
在Series中,指定index,将时间作为索引,产生随机序列:
1time=pd.Series(np.random.randn(20),
2 index=pd.date_range(dt.datetime(2016,1,1),periods=20))
3print(time)
1.2 truncate过滤
过滤掉2016-1-10之前的数据:
1time.truncate(before='2016-1-10')
结果显示:
12016-01-10 -0.005444
22016-01-11 -0.134409
32016-01-12 0.249318
42016-01-13 -0.297842
52016-01-14 -0.128514
62016-01-15 0.063690
72016-01-16 -2.246031
82016-01-17 0.359552
92016-01-18 0.383030
102016-01-19 0.402717
112016-01-20 -0.694068
12Freq: D, dtype: float64
过滤掉2016-1-10之后的数据:
1time.truncate(after='2016-1-10')
结果显示:
12016-01-01 -0.129379
22016-01-02 0.164480
32016-01-03 -0.639117
42016-01-04 -0.427224
52016-01-05 2.055133
62016-01-06 1.116075
72016-01-07 0.357426
82016-01-08 0.274249
92016-01-09 0.834405
102016-01-10 -0.005444
11Freq: D, dtype: float64
通过时间索引,提取数据:
1print(time['2016-01-15'])
通过切片,将一段时间间隔的数据提取出来:
1print(time['2016-01-15':'2016-01-20'])
我们也可以指定起始时间和终止时间,产生时间序列:
1data=pd.date_range('2010-01-01','2011-01-01',freq='M')
2print(data)
参数freq中可以选的数值:



