Last answered:

20 Nov 2023

Posted on:

14 Nov 2023

1

to_datetime() method without specify the format

It seems like last example about data frame is wrong. it converted first date as 2018-04-07 when we do not use format argument. But correct date should be 2018-07-04. So we have to use format ??

1 answers ( 0 marked as helpful)
Instructor
Posted on:

20 Nov 2023

1

Hi Modhuka!

Thanks for reaching out!

Great observation! Your understanding is spot-on. When converting string dates to datetime objects using pandas' pd.to_datetime() method, the format of the date string is crucial for accurate conversion.

By default, when the format argument is not specified, pandas tries to infer the format of the date strings. In many cases, especially in datasets following the American date format (month-day-year), this inference works well. However, in our case, the date '04/07/2018' is in the day-month-year format, which is common outside the United States. Due to the default behavior, pandas misinterpreted '04/07/2018' as April 7, 2018, instead of the correct July 4, 2018. This is a classic case where the inferred format does not match the actual format of the date string.

To ensure accurate conversion, we should indeed use the format argument. By specifying the format, we explicitly tell pandas how to interpret the date strings. For this date format (day-month-year), we would use pd.to_datetime(df['StartDate'], format='%d/%m/%Y'). This way, pandas correctly interprets '04/07/2018' as July 4, 2018.

In the course, the general functionality of pd.to_datetime() is showcased to introduce the concept. However, as you rightly pointed out, in practical scenarios where precision is key, the format argument becomes essential to avoid such misinterpretations. You did an excellent job noticing this discrepancy and suggesting the use of the format argument. It's an important aspect of data preprocessing, especially when working with global datasets where date formats can vary.

Keep up the great work!

Best,

Ivan


Submit an answer