Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create hourly/minutely time range using pandas

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") 
like image 646
UNagaswamy Avatar asked Jul 14 '13 21:07

UNagaswamy


People also ask

How do I create a date range in pandas?

Specifying the valuesSpecify start and end, with the default daily frequency. Specify start and periods, the number of periods (days). Specify end and periods, the number of periods (days). Specify start, end, and periods; the frequency is generated automatically (linearly spaced).

Does pandas support time series?

pandas contains extensive capabilities and features for working with time series data for all domains. Using the NumPy datetime64 and timedelta64 dtypes, pandas has consolidated a large number of features from other Python libraries like scikits.


1 Answers

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?

like image 101
Jeff Avatar answered Sep 28 '22 10:09

Jeff