pandas中时间序列——date_range函数

通过?pandas.date_range命令查看date_range函数帮助文档

语法:pandas.date_range(start=None, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)

该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。

主要参数说明:

periods:固定时期,取值为整数或None

freq:日期偏移量,取值为string或DateOffset,默认为'D'

normalize:若参数为True表示将start、end参数值正则化到午夜时间戳

name:生成时间索引对象的名称,取值为string或None

closed:可以理解成在closed=None情况下返回的结果中,若closed=‘left’表示在返回的结果基础上,再取左开右闭的结果,若closed='right'表示在返回的结果基础上,再取做闭右开的结果

In [11]: import pandas as pd

In [12]: pd.date_range(start='20170101',end='20170110')
Out[12]:
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
               '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08',
               '2017-01-09', '2017-01-10'],
              dtype='datetime64[ns]', freq='D')

In [13]: pd.date_range(start='20170101',periods=10)
Out[13]:
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
               '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08',
               '2017-01-09', '2017-01-10'],
              dtype='datetime64[ns]', freq='D')

In [14]: pd.date_range(start='20170101',periods=10,freq='1D')
Out[14]:
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
               '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08',
               '2017-01-09', '2017-01-10'],
              dtype='datetime64[ns]', freq='D')

In [15]: pd.date_range(start='20170101',end='20170110',freq='3D',name='dt')
Out[15]: DatetimeIndex(['2017-01-01', '2017-01-04', '2017-01-07', '2017-01-10'],
 dtype='datetime64[ns]', name='dt', freq='3D')

In [16]: pd.date_range(start='2017-01-01 08:10:50',periods=10,freq='s',normaliz
    ...: e=True)
Out[16]:
DatetimeIndex(['2017-01-01 00:00:00', '2017-01-01 00:00:01',
               '2017-01-01 00:00:02', '2017-01-01 00:00:03',
               '2017-01-01 00:00:04', '2017-01-01 00:00:05',
               '2017-01-01 00:00:06', '2017-01-01 00:00:07',
               '2017-01-01 00:00:08', '2017-01-01 00:00:09'],
              dtype='datetime64[ns]', freq='S')

In [17]: pd.date_range(start='2017-01-01 08:10:50',end='2017-01-02 09:20:40',fr
    ...: eq='s',normalize=True)
Out[17]:
DatetimeIndex(['2017-01-01 00:00:00', '2017-01-01 00:00:01',
               '2017-01-01 00:00:02', '2017-01-01 00:00:03',
               '2017-01-01 00:00:04', '2017-01-01 00:00:05',
               '2017-01-01 00:00:06', '2017-01-01 00:00:07',
               '2017-01-01 00:00:08', '2017-01-01 00:00:09',
               ...
               '2017-01-01 23:59:51', '2017-01-01 23:59:52',
               '2017-01-01 23:59:53', '2017-01-01 23:59:54',
               '2017-01-01 23:59:55', '2017-01-01 23:59:56',
               '2017-01-01 23:59:57', '2017-01-01 23:59:58',
               '2017-01-01 23:59:59', '2017-01-02 00:00:00'],
              dtype='datetime64[ns]', length=86401, freq='S')

In [18]: pd.date_range(start='2017-01-01 08:10:50',periods=15,freq='s',normaliz
    ...: e=False)
Out[18]:
DatetimeIndex(['2017-01-01 08:10:50', '2017-01-01 08:10:51',
               '2017-01-01 08:10:52', '2017-01-01 08:10:53',
               '2017-01-01 08:10:54', '2017-01-01 08:10:55',
               '2017-01-01 08:10:56', '2017-01-01 08:10:57',
               '2017-01-01 08:10:58', '2017-01-01 08:10:59',
               '2017-01-01 08:11:00', '2017-01-01 08:11:01',
               '2017-01-01 08:11:02', '2017-01-01 08:11:03',
               '2017-01-01 08:11:04'],
              dtype='datetime64[ns]', freq='S')

In [19]: pd.date_range(start='20170101',end='20170110',freq='3D',closed='left')
    ...:
Out[19]: DatetimeIndex(['2017-01-01', '2017-01-04', '2017-01-07'], dtype='dateti
me64[ns]', freq='3D')

In [20]: pd.date_range(start='20170101',end='20170110',freq='3D',closed='right'
    ...: )
Out[20]: DatetimeIndex(['2017-01-04', '2017-01-07', '2017-01-10'], dtype='dateti
me64[ns]', freq='3D')





  • 43
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值