[英]Python start date_range from a specific hour
我試圖在 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)
但是,這從 00:00:00 開始。 我嘗試了幾種修改上述代碼的方法,使其在 10:00:00 開始運行,但都沒有奏效。 任何人都可以幫忙嗎?
澄清一下:我使用 Pandas 是因為此日期范圍將用作數據框的索引。
您可以構造另一個日期時間,但只使用日、月、年組件並再次偏移:
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')
試試
today = pd.datetime.today().date()
today - pd.offsets.Hour(14)
Timestamp('2016-11-22 10:00:00')
然后使用pd.date_range
pd.date_range(today - pd.offsets.Hour(14), periods=24, freq='H')
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='H')
創建一個字符串日期,然后將其解析為日期時間日期
from datetime import timedelta
from datetime import date
import datetime as datetime
previous_day=pd.datetime.today().date()-datetime.timedelta(days=1)
start_datetime=datetime.datetime.strptime(str(previous_day)+' 10:00:00','%Y-%m-%d %H:%M:%S')
date_range = pd.date_range(start_datetime, freq='60min', periods=24)
print(date_range)
輸出:
DatetimeIndex(['2021-03-25 10:00:00', '2021-03-25 11:00:00',
'2021-03-25 12:00:00', '2021-03-25 13:00:00',
'2021-03-25 14:00:00', '2021-03-25 15:00:00',
'2021-03-25 16:00:00', '2021-03-25 17:00:00',
'2021-03-25 18:00:00', '2021-03-25 19:00:00',
'2021-03-25 20:00:00', '2021-03-25 21:00:00',
'2021-03-25 22:00:00', '2021-03-25 23:00:00',
'2021-03-26 00:00:00', '2021-03-26 01:00:00',
'2021-03-26 02:00:00', '2021-03-26 03:00:00',
'2021-03-26 04:00:00', '2021-03-26 05:00:00',
'2021-03-26 06:00:00', '2021-03-26 07:00:00',
'2021-03-26 08:00:00', '2021-03-26 09:00:00'],
dtype='datetime64[ns]', freq='60T')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.