Somashekar Muniyappa
Somashekar Muniyappa

Reputation: 483

Convert string column to DateTime format

I have a DataFrame column where value is of string type 'June 6, 2016, 6' and I want to convert it into DataTime as 'YYYY-MM-DD HH:MM' format.

When tried convert by just taking value , I could able to convert it into right format.

import datetime
stringDate = "June 6, 2016, 11"
dateObject = datetime.datetime.strptime(stringDate, "%B %d, %Y, %H")
print dateObject

**Output : 2016-06-06 11:00:00**

But when I tried different options to apply the same conversion on python dataframe columns I'm not getting time part in the conversion.

**Option1**
df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H").date())

**Option2**
df['Date'] = pd.to_datetime(df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H"))

Output: both cases got 2016-06-06

Any suggestions will be appreciated.

Upvotes: 1

Views: 2544

Answers (1)

jezrael
jezrael

Reputation: 862406

I think you need add parameter format to to_datetime:

print (pd.to_datetime('June 6, 2016, 11', format='%B %d, %Y, %H'))
2016-06-06 11:00:00

It works with DataFrame too:

df = pd.DataFrame({'Date':['June 6, 2016, 11', 'May 6, 2016, 11']})
print (df)
               Date
0  June 6, 2016, 11
1   May 6, 2016, 11

print (pd.to_datetime(df['Date'], format='%B %d, %Y, %H'))
0   2016-06-06 11:00:00
1   2016-05-06 11:00:00
Name: Date, dtype: datetime64[ns]

Upvotes: 2

Related Questions