I have a timestamp column where the timestamp is in the following format 2016-06-16T21:35:17.098+01:00 I want to extract date and time from it. I have done the following: import datetime as dt df['timestamp'] = df['timestamp'].apply(lambda x : pd.to_datetime(str(x))) df['dates'] = df['timestamp'].dt.date This worked for a while. But suddenly it does not. If I again do df['dates'] = df['timestamp'].dt.date I get the following error Can only use .dt accessor with datetimelike values Luckily, I have saved the data frame with dates in the csv but I now want to create another column time in the format 23:00:00.051 EDIT From the raw data file (15 million samples), the timestamp column looks like following (first 5 samples): timestamp 0 2016-06-13T00:00:00.051+01:00 1 2016-06-13T00:00:00.718+01:00 2 2016-06-13T00:00:00.985+01:00 3 2016-06-13T00:00:02.431+01:00 4 2016-06-13T00:00:02.737+01:00 After the following command df['timestamp'] = df['timestamp'].apply(lambda x : pd.to_datetime(str(x))) the timestamp column looks like with dtype as dtype: datetime64[ns] 0 2016-06-12 23:00:00.051 1 2016-06-12 23:00:00.718 2 2016-06-12 23:00:00.985 3 2016-06-12 23:00:02.431 4 2016-06-12 23:00:02.737 Then finally df['dates'] = df['timestamp'].dt.date 0 2016-06-12 1 2016-06-12 2 2016-06-12 3 2016-06-12 4 2016-06-12 EDIT 2 Found the mistake. I had cleaned the data and saved the data frame in a csv file, so I don't have to do the cleaning again. When I read the csv, the timestamp dtype changes to object. Now how do I fix this? Continue reading...