bibscy
bibscy

Reputation: 2708

How to convert different date formats in pandas?

I have 2 columns with different date formats. In every row string dates are formatted differently.
I want to convert the columns to Date type. However, I am wondering if there is any built in method that will do the parsing for me:

What I tried

from datetime import datetime

newFrame =  newDF.assign(Effective_Date=newDF['Effective_Date'].apply(lambda element: datetime.strptime(element,'%b %d  %Y %H %M %S')), Paid_Off_Time=newDF['Paid_Off_Time'].apply(lambda element: datetime.strptime(element,'%b %d  %Y %H %M %S')))

error when I run code above

  line 359, in _strptime
 (data_string, format))
  ValueError: time data '09/08/2016' does not match format '%b %d  %Y %H %M %S'

Example Date formats in .csv: 10/07/2016 10/07/2016 09:00

Upvotes: 0

Views: 36

Answers (2)

Vanitha Raj
Vanitha Raj

Reputation: 14

Checkout the Pandas documentation on Data Functionality for more details:

https://pandas.pydata.org/docs/user_guide/timeseries.html#converting-to-timestamps

Upvotes: 0

wwnde
wwnde

Reputation: 26676

Data

newDF=pd.DataFrame({'Effective_Date':['10/07/2016','10/07/2016 09:00','09 August 2016'],'Paid_Off_Time':['10 July 2016','10/08/2016','10/09/2016 01:00:30']})



 Effective_Date        Paid_Off_Time
0        10/07/2016         10 July 2016
1  10/07/2016 09:00           10/08/2016
2    09 August 2016  10/09/2016 01:00:30

Solution

newDF.assign(Effective_Date=pd.to_datetime(newDF['Effective_Date']).dt.date,Paid_Off_Time=pd.to_datetime(newDF['Paid_Off_Time']).dt.date)




Effective_Date Paid_Off_Time
0     2016-10-07    2016-07-10
1     2016-10-07    2016-10-08
2     2016-08-09    2016-10-09

Upvotes: 1

Related Questions