Create hourly/minutely time range using pandas

UNagaswamy picture UNagaswamy · Jul 14, 2013 · Viewed 41.8k times · Source

Is there a way to generate time range in pandas similar to date_range? something like:

pandas.time_range("11:00", "21:30", freq="30min")

Answer

Jeff picture Jeff · Jul 15, 2013

A time range doesn't exist as a standalone index type. Generate using a single date

In [1]: pandas.date_range("11:00", "21:30", freq="30min")
Out[1]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-07-14 11:00:00, ..., 2013-07-14 21:30:00]
Length: 22, Freq: 30T, Timezone: None

The time objects

In [2]: pandas.date_range("11:00", "21:30", freq="30min").time
Out[2]: 
array([datetime.time(11, 0), datetime.time(11, 30), datetime.time(12, 0),
       datetime.time(12, 30), datetime.time(13, 0), datetime.time(13, 30),
       datetime.time(14, 0), datetime.time(14, 30), datetime.time(15, 0),
       datetime.time(15, 30), datetime.time(16, 0), datetime.time(16, 30),
       datetime.time(17, 0), datetime.time(17, 30), datetime.time(18, 0),
       datetime.time(18, 30), datetime.time(19, 0), datetime.time(19, 30),
       datetime.time(20, 0), datetime.time(20, 30), datetime.time(21, 0),
       datetime.time(21, 30)], dtype=object)

You can also resample if you are spanning multiple dates.

What are you trying to do?