2013-06-21 46 views
2

在熊猫中使用DateOffset时,我看到以下行为。在大熊猫中丢失了dateoffset和bdate_range的时间信息

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 

回答

1

可以使用normalize说法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 

注:一些类似的功能有类似的论点base

+0

嗯......我不知道正常化 – nitin

+0

这不是在线文档,你必须检查'help(pd.bdate_range)':) –

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 

安迪指出的那样,你可以做到这一点使用bdate_range,但我喜欢这种方法由于其简单性和可读性

+0

然而,结果是不同的,因为'bdate_range'只包含工作日(如果您采用稍大的范围, 10),2013-01-05恰好是星期六,所以它是在你的,但不是我的或OP。 :) –

+0

以前从未使用过'bdate_range',现在猜猜我知道它对于哈哈 –