- 基本类型,以时间戳为索引的Series -> DatetimeIndex(以datetime为索引)
- 创建
- 指定index为datetime的list
- pd.date_range()
//创建
import numpy as np
#指定index为datetime的list
1.
date_list = [datetime(2017,2,18),datetime(2017,2,19),datetime(2017,2,23),datetime(2017,2,24),datetime(2017,3,3),datetime(2017,3,4)]
time_s = pd.Series(np.random.randn(6), index=date_list)
print(time_s)
print(type(time_s.index))
2.
dates = pd.date_range('2017-02-18', #起始日期
periods=5, #周期
freq= 'W-SAT' #频率
)
print(dates)
print(pd.Series(np.random.randn(5), index=dates))
- 索引
#索引位置
print(time_s[0])
# 索引值
print(time_s[datetime(2017, 2, 18)])
# 可以被解析的日期字符串
print(time_s['2017/02/18'])
# 按'年份'、'月份'索引
print(time_s['2017-2'])
# 切片操作
print(time_s['2017-2-26':])
- 过滤
//过滤
time_s.truncate(before='2017-2-25')
time_s.truncate(after='2017-2-25')
- 生成日期范围
# 传入开始、结束日期,默认生成的该时间段的时间点时按天计算的
date_index = pd.date_range('2017/02/18', '2017/03/18', freq='2D')
print(date_index)
#只传入开始或结束日期,还需传入时间段
print(pd.date_range(start='2017/02/18', periods=10))
print(pd.date_range(end='2017/02/18', periods=10))
- 移动数据(shifting)
沿时间轴将数据前移或后移,保持索引不变
ts = pd.Series(np.random.randn(5), index = pd.date_range('2017/02/18', periods=5, freq='W-SAT'))
print(ts.shift(1)) //数据后移
print(ts.shift(-1) //数据前移