python生成序列_利用Python中的pandas(date_range)库生成时间序列(time series)

在讲pandas时间序列函数之前,我大概介绍下什么是时间序列(time series)。时间序列(time series)简单的说就是各时间点上形成的数值序列,时间序列(time series)分析就是通过观察历史数据预测未来的值。比如股票预测、房价预测分析等。本篇文章主要详细讲解生成时间索引的函数date_range及延伸函数。

pandas.date_range

pandas.date_range()这个函数主要是返回固定频率的时间索引,参数比较多,下面我们依次演示常用的参数用法。

根据指定的起止时间,生成时间序列import pandas as pdpd.date_range(start='2019-1-09', end='2019-1-31')

u=2586626945,2939559993&fm=173&app=49&f=JPEG?w=640&h=218&s=2170E1329FC049430A75D0DA0100E0B1根据起止时间生成

根据起止时间,并指定时间序列数量pd.date_range(start='2019-1-09', end='2019-1-10',periods=10)

u=531946935,3735341108&fm=173&app=49&f=JPEG?w=640&h=208&s=A770E032DFE048130EC1FCDE010050B3根据指定数量生成

根据开始时间和指定数量生成pd.date_range(start='2019-1-09',periods=10)

u=2208457627,2780438658&fm=173&app=49&f=JPEG?w=640&h=146&s=2270E032C5364C334E7188DB010080B1根据开始时间和periods生成

根据指定的频率生成时间点pd.date_range(start='2019-1-09',periods=10,freq='H')

u=3380427606,445433080&fm=173&app=49&f=JPEG?w=601&h=198&s=A1706532D7C049530EF4D5CE0100E0B1指定以小时为频率

比较上面可以看出,date_range中默认以天为频率,如果我们需要其他单位的频率必须用freq这个参数指定,并且可以是基础频率的倍数,如下:

pd.date_range(start='2019-1-09',periods=10,freq='12H')

u=1839823709,1157787077&fm=173&app=49&f=JPEG?w=603&h=199&s=A070E432D7C44D434EF4D1CE0100E0B1freq=12H

这里可选的频率有很多,大家在使用的时候查看官方文档即可,这里不在一一举例,附一张官方文档中的图。

u=1962711938,2965665533&fm=173&app=49&f=JPEG?w=535&h=682&s=C550E43359BFC0CE46FDA0DE010090B1频率可选值

根据closed参数选择是否包含开始和结束时间,left包含开始时间,不包含结束时间,right与之相反。pd.date_range(start='2019-01-09', end='2019-01-14', closed=None)pd.date_range(start='2019-01-09', end='2019-01-14', closed='left')pd.date_range(start='2019-01-09', end='2019-01-14', closed='right')

u=3668784015,2154857797&fm=173&app=49&f=JPEG?w=640&h=401&s=A150E13319DECDC8527401DE0100C0B1closed空值起止时间

时间序列作为索引并根据索引取值

u=1594977413,687909855&fm=173&app=49&f=JPEG?w=602&h=253&s=8D40E4131B404C435A5DA1DA0000C0B2生成时间序列

u=458480312,2654525414&fm=173&app=49&f=JPEG?w=294&h=296&s=8A60E112496FF6CE067500CA010050B2根据时间索引取值

truncate过滤

time.truncate(before='2019-01-12')

可以看到truncate这个函数将before指定日期之前的值全部过滤出去。既然有before,那么就有after,如下:

time.truncate(after='2019-01-12')

u=1989745587,1439047954&fm=173&app=49&f=JPEG?w=385&h=182&s=A802E5121DD06DCA0CDDA4DF0000C0B2过滤after之后的数据

pandas.Timestamp

这个类主要是用来生成时间戳的,如下:

pd.Timestamp('2019-01-10')

u=761817167,961764269&fm=173&app=49&f=JPEG?w=412&h=107&s=A150E03385704C2110C48DDB010080B2

pandas.Timedelta

pd.Timedelta('2day')

pd.Timestamp('2019-01-10')+pd.Timedelta('2day')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值