Convert DataFrame column type from string to datetime, dd/mm/yyyy format Convert DataFrame column type from string to datetime, dd/mm/yyyy format python python

Convert DataFrame column type from string to datetime, dd/mm/yyyy format


The easiest way is to use to_datetime:

df['col'] = pd.to_datetime(df['col'])

It also offers a dayfirst argument for European times (but beware this isn't strict).

Here it is in action:

In [11]: pd.to_datetime(pd.Series(['05/23/2005']))Out[11]:0   2005-05-23 00:00:00dtype: datetime64[ns]

You can pass a specific format:

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")Out[12]:0   2005-05-23dtype: datetime64[ns]


If your date column is a string of the format '2017-01-01'you can use pandas astype to convert it to datetime.

df['date'] = df['date'].astype('datetime64[ns]')

or use datetime64[D] if you want Day precision and not nanoseconds

print(type(df_launath['date'].iloc[0]))

yields

<class 'pandas._libs.tslib.Timestamp'>the same as when you use pandas.to_datetime

You can try it with other formats then '%Y-%m-%d' but at least this works.


You can use the following if you want to specify tricky formats:

df['date_col'] =  pd.to_datetime(df['date_col'], format='%d/%m/%Y')

More details on format here: