Python 从特定小时开始 date_range

pot*_*lom 5 python datetime date-range dataframe pandas

我试图在 Python 中指定一个从当天前一天开始的日期范围。但是,我希望该日期范围从 10:00:00 开始。

这是我当前正在使用的代码

import pandas as pd
import datetime as dt
date = dt.datetime.today() - dt.timedelta(days=1)
date_range = pd.date_range(date, freq='60min', periods=24)
Run Code Online (Sandbox Code Playgroud)

但是,该时间从 00:00:00 开始。我尝试了几种修改上述代码以使其在 10:00:00 开始的方法,但没有任何效果。有人可以帮忙吗?

澄清一下:我使用 Pandas 是因为这个日期范围将用作数据帧的索引。

EdC*_*ica 5

您可以构造另一个日期时间,但仅使用日、月、年部分并再次偏移:

In [87]:
date = dt.datetime.today() - dt.timedelta(days=1)
date = dt.datetime(date.year, date.month, date.day) + dt.timedelta(hours=10)
date_range = pd.date_range(date, freq='60min', periods=24)
date_range

Out[87]:
DatetimeIndex(['2016-11-22 10:00:00', '2016-11-22 11:00:00',
               '2016-11-22 12:00:00', '2016-11-22 13:00:00',
               '2016-11-22 14:00:00', '2016-11-22 15:00:00',
               '2016-11-22 16:00:00', '2016-11-22 17:00:00',
               '2016-11-22 18:00:00', '2016-11-22 19:00:00',
               '2016-11-22 20:00:00', '2016-11-22 21:00:00',
               '2016-11-22 22:00:00', '2016-11-22 23:00:00',
               '2016-11-23 00:00:00', '2016-11-23 01:00:00',
               '2016-11-23 02:00:00', '2016-11-23 03:00:00',
               '2016-11-23 04:00:00', '2016-11-23 05:00:00',
               '2016-11-23 06:00:00', '2016-11-23 07:00:00',
               '2016-11-23 08:00:00', '2016-11-23 09:00:00'],
              dtype='datetime64[ns]', freq='60T')
Run Code Online (Sandbox Code Playgroud)