Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert string to datetime format in pandas python?

I have a column I_DATE of type string(object) in a dataframe called train as show below.

I_DATE 28-03-2012  2:15:00 PM 28-03-2012  2:17:28 PM 28-03-2012  2:50:50 PM 

How to convert I_DATE from string to datatime format & specify the format of input string. I saw some answers to this but its not for AM/PM format.

Also, how to filter rows based on a range of dates in pandas?

like image 956
GeorgeOfTheRF Avatar asked Aug 25 '15 12:08

GeorgeOfTheRF


People also ask

How do I convert a string to a datetime in Python?

We can convert a string to datetime using strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.


Video Answer


2 Answers

Use to_datetime, there is no need for a format string the parser is man/woman enough to handle it:

In [51]: pd.to_datetime(df['I_DATE'])  Out[51]: 0   2012-03-28 14:15:00 1   2012-03-28 14:17:28 2   2012-03-28 14:50:50 Name: I_DATE, dtype: datetime64[ns] 

To access the date/day/time component use the dt accessor:

In [54]: df['I_DATE'].dt.date  Out[54]: 0    2012-03-28 1    2012-03-28 2    2012-03-28 dtype: object  In [56]:     df['I_DATE'].dt.time  Out[56]: 0    14:15:00 1    14:17:28 2    14:50:50 dtype: object 

You can use strings to filter as an example:

In [59]: df = pd.DataFrame({'date':pd.date_range(start = dt.datetime(2015,1,1), end = dt.datetime.now())}) df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]  Out[59]:          date 35 2015-02-05 36 2015-02-06 37 2015-02-07 38 2015-02-08 39 2015-02-09 
like image 79
EdChum Avatar answered Sep 18 '22 21:09

EdChum


Approach: 1

Given original string format: 2019/03/04 00:08:48

you can use

updated_df = df['timestamp'].astype('datetime64[ns]')

The result will be in this datetime format: 2019-03-04 00:08:48

Approach: 2

updated_df = df.astype({'timestamp':'datetime64[ns]'})

like image 45
Arjjun Avatar answered Sep 20 '22 21:09

Arjjun