Рассмотрим дату 1-2-2020
. Теперь, просто посмотрев на дату, вы можете сказать, какая именно это дата? Ответ отрицательный, потому что, если вы не знаете, как отформатирована дата или как была создана дата, т.е. день-месяц-год или месяц-день-год, вы не можете точно сказать, является ли указанная выше дата 1st February 2020
или 2nd January 2020
. Итак, ключ здесь - проверка набора данных и его происхождения. Существует несколько методов интуиции, которые вы можете применить к своим данным, например, если данные получены из Соединенных Штатов, общий формат даты - MM/DD/YYYY
или для Индии - DD-MM-YY
.
SAMPLE
>>> import pandas as pd
>>> df = pd.DataFrame({'dt': ['1-1-2020', '15-2-2020', '3-24-2020']})
>>> df
dt
0 1-1-2020
1 15-2-2020
2 3-24-2020
CODE - выдает ошибку, как ожидалось
>>> pd.to_datetime(df['dt'], format = '%d-%m-%Y')
Traceback (most recent call last):
File "/home/vishnudev/anaconda3/envs/sumyag/lib/python3.7/site-packages/pandas/core/tools/datetimes.py", line 448, in _convert_listlike_datetimes
values, tz = conversion.datetime_to_datetime64(arg)
File "pandas/_libs/tslibs/conversion.pyx", line 200, in pandas._libs.tslibs.conversion.datetime_to_datetime64
TypeError: Unrecognized value type: <class 'str'>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/vishnudev/anaconda3/envs/sumyag/lib/python3.7/site-packages/pandas/util/_decorators.py", line 208, in wrapper
return func(*args, **kwargs)
File "/home/vishnudev/anaconda3/envs/sumyag/lib/python3.7/site-packages/pandas/core/tools/datetimes.py", line 778, in to_datetime
values = convert_listlike(arg._values, True, format)
File "/home/vishnudev/anaconda3/envs/sumyag/lib/python3.7/site-packages/pandas/core/tools/datetimes.py", line 451, in _convert_listlike_datetimes
raise e
File "/home/vishnudev/anaconda3/envs/sumyag/lib/python3.7/site-packages/pandas/core/tools/datetimes.py", line 416, in _convert_listlike_datetimes
arg, format, exact=exact, errors=errors
File "pandas/_libs/tslibs/strptime.pyx", line 142, in pandas._libs.tslibs.strptime.array_strptime
ValueError: time data '3-24-2020' does not match format '%d-%m-%Y' (match)