数据分析pandas时间数据索引

  • 基本类型,以时间戳为索引的Series -> DatetimeIndex(以datetime为索引)
  • 创建
  1. 指定index为datetime的list
  2. 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)  //数据前移

猜你喜欢

转载自blog.csdn.net/disasters/article/details/91954226