2

在熊猫中使用 DateOffset 时,我看到以下行为。

In [25]:

import pandas as pnd
d = pnd.Timestamp('2013-01-01 16:00')
dates = pnd.bdate_range(start=d, end=d+pnd.DateOffset(days=5))
for d1 in dates :
    print d1
2013-01-01 00:00:00
2013-01-02 00:00:00
2013-01-03 00:00:00
2013-01-04 00:00:00

我正在丢失时间信息。有没有办法生成一个看起来像的日期范围,

2013-01-01 16:00:00
2013-01-02 16:00:00
2013-01-03 16:00:00
2013-01-04 16:00:00
4

2 回答 2

1

您可以使用的normalize参数bdate_range(默认为 True):

In [11]: dates = pnd.bdate_range(start=d, end=d+pnd.DateOffset(days=5), normalize=False)

In [12]: for d1 in dates :
             print d1
2013-01-01 16:00:00
2013-01-02 16:00:00
2013-01-03 16:00:00
2013-01-04 16:00:00

注意:一些类似的函数有类似的参数base

于 2013-06-21T20:01:48.050 回答
1

您可以使用date_range更简单的方法来做到这一点!:

import pandas as pnd
d = '2013-01-01 16:00'
dates = pnd.date_range(d, periods=5, freq='D')

显示输出:

>>> for i in dates: print i
... 
2013-01-01 16:00:00
2013-01-02 16:00:00
2013-01-03 16:00:00
2013-01-04 16:00:00
2013-01-05 16:00:00

正如 Andy 指出的那样,您可以使用 来执行此操作bdate_range,但我更喜欢这种方法,因为它简单易读

于 2013-06-21T20:03:37.463 回答