Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add/subtract time (hours, minutes, etc.) from a Pandas DataFrame.Index whos objects are of type datetime.time?

I've got a DataFrame who's index is just datetime.time and there's no method in DataFrame.Index and datetime.time to shift the time. datetime.time has replace but that'll only work on individual items of the Series?

Here's an example of the index used:

In[526]:  dfa.index[:5] Out[526]: Index([21:12:19, 21:12:20, 21:12:21, 21:12:21, 21:12:22], dtype='object')  In[527]:  type(dfa.index[0]) Out[527]: datetime.time 
like image 519
Cameron Stark Avatar asked Mar 10 '15 00:03

Cameron Stark


People also ask

How do I work with dates and times in pandas?

Pandas has a built-in function called to_datetime()that converts date and time in string format to a DateTime object. As you can see, the 'date' column in the DataFrame is currently of a string-type object. Thus, to_datetime() converts the column to a series of the appropriate datetime64 dtype.


2 Answers

Liam's link looks great, but also check out pandas.Timedelta - looks like it plays nicely with NumPy's and Python's time deltas.

https://pandas.pydata.org/pandas-docs/stable/timedeltas.html

pd.date_range('2014-01-01', periods=10) + pd.Timedelta(days=1) 
like image 98
Alex Avatar answered Sep 22 '22 18:09

Alex


This one worked for me:

>> print(df)                           TotalVolume  Symbol 2016-04-15 09:00:00       108400       2802.T 2016-04-15 09:05:00       50300        2802.T  >> print(df.set_index(pd.to_datetime(df.index.values) - datetime(2016, 4, 15)))               TotalVolume  Symbol 09:00:00     108400       2802.T 09:05:00     50300        2802.T 
like image 33
Philippe Remy Avatar answered Sep 22 '22 18:09

Philippe Remy