2016-11-23 2 views
3

J'essaie de spécifier une plage de dates en Python commençant le jour précédant le jour en cours. Cependant, je voudrais que cette plage de dates commence à 10:00:00.Python start date_range à partir d'une heure spécifique

C'est le code que je suis actuellement en utilisant

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) 

Cependant, cela commence à 00:00:00. J'ai essayé quelques moyens de modifier le code ci-dessus pour le faire démarrer à 10:00:00, mais aucun ne fonctionne. Quelqu'un peut-il aider? Pour clarifier: J'utilise Pandas parce que cette plage de dates doit être utilisée comme index pour une trame de données.

Répondre

3

Vous pouvez construire une autre datetime mais utiliser seulement le jour, le mois, les composants de l'année et à nouveau le décalage:

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') 
+0

Brillant. Cela fonctionne parfaitement. Je vous remercie. – pottolom

2

essayer

today = pd.datetime.today().date() 
today - pd.offsets.Hour(14) 

Timestamp('2016-11-22 10:00:00') 

Ensuite, utilisez 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')