在pandas中使用dateoffset和bdate\u range丢失时间信息

2024-05-16 21:02:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在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

Tags: inimportpandasforasrangedaysstart
2条回答

可以使用normalizebdate_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

您可以使用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来实现这一点,但是我更喜欢这种方法,因为它简单易读

相关问题 更多 >