在pandas中使用dateoffset和bdate_range丢失时间信息

时间:2013-06-21 19:49:22

标签: python pandas

在pandas中使用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

2 个答案:

答案 0 :(得分:1)

您可以使用normalize的{​​{1}}参数(默认为True):

bdate_range

注意:某些类似的函数具有类似的参数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

答案 1 :(得分: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执行此操作,但由于其简单性和可读性,我更喜欢此方法