Меня смущает поведение панд to_datetime
в неамериканские даты.
В этом тривиальном примере Панды правильно выводит месяцы во 2-й и 3-й строке, но не в 1-й и 4-й.
Очевидно, что 2-я и 3-я строки обрабатываются как dd/mm/yyyy
даты (потому что 13 и 27 явно не могут быть месяцами), но оставшиеся даты обрабатываются как mm/dd/yyyy
.
Я ожидаю, что to_datetime
будет выводить из всей серии, а затем обрабатывать каждую запись одинаково.
import pandas as pd
results = pd.DataFrame()
european_dates = pd.Series(['05/04/2007', # <-- April 5th, 2007
'13/04/2006', # <-- April 13th, 2006
'27/12/2014', # <-- December 27th, 2014
'02/07/2010']) # <-- July 2nd, 2010
# note: the same happens with infer_datetime_format=False
inferred_dates = pd.to_datetime(european_dates,
infer_datetime_format=True)
results['day'] = inferred_dates.dt.day
results['month'] = inferred_dates.dt.month
results['year'] = inferred_dates.dt.year
results
Примечание: Мне известно, что to_datetime
имеет аргумент dayfirst
и аргумент format
мой вопрос в основном о том, почему infer_datetime_format
терпит неудачу в таком тривиальном случае.