При преобразовании Series
из string
в datetime
с использованием функции astype
, если строка не имеет компонента времени, она принимает различные варианты поведения при преобразовании и меняет месяц и день в одном и том же Series
.Как правильно преобразовать Series
?
df_date=pd.DataFrame(['12/07/2013 21:50:00','13/07/2013 00:30:00','15/07/2013','11/07/2013'], columns=['Date'])
print(df_date.Date.dtype)
df_date.Date = pd.to_datetime(df_date.Date, format="%d/%m/%Y %H:%M:%S", exact=False, dayfirst=True, errors='ignore')
print(df_date.Date.dtype)
df_date
ВЫХОД:
Date
0 12/07/2013 21:50:00
1 13/07/2013 00:30:00
2 15/07/2013
3 11/07/2013
При выполнении:
df_date.Date = df_date.Date.astype('datetime64')
он становится типа datetime:
print(df_date.Date.dtype)
но при преобразовании он имеет два различных поведения:
df_date
ВЫХОД:
Date
0 2013-12-07 21:50:00
1 2013-07-13 00:30:00
2 2013-07-15 00:00:00
3 2013-11-07 00:00:00
Ожидаемый результат в моем уме будет:
Date
0 2013-07-12 21:50:00
1 2013-07-13 00:30:00
2 2013-07-15 00:00:00
3 2013-07-11 00:00:00
Вместо смены дня и месяца в строках 0 и 3.