微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据分析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)  //数据前移

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐