У меня есть столбец даты, который после использования панд read_csv
представляется как тип объекта. Я пытаюсь преобразовать его в объект datetime pandas, но при использовании pd.to_datetime()
он возвращает неправильный объект datetime.
например, у меня есть даты в этом формате 01-06-68
, где 01 - день, 06 - месяц, а 68 - год. Применение pandas to_datetime()
к этой строке возвращает 2068-06-01
но должно возвращать 1968-06-01
, где 06 - месяц, а 01 - день.
Я испробовал все возможные решения, используя pandas to_datetime(), python datetime, библиотеку маятника, но все равно получал ошибку. Как я могу решить эту проблему?
Использование:
df['date'] = pd.to_datetime(df['date'].str[:-2] + '19' + df['date'].str[-2:])
Другое решение с replace
:
df['date'] = pd.to_datetime(df['date'].str.replace(r'-(\d+)$', r'-19\1'))
Образец:
print (df)
date
0 01-06-70
1 01-06-69
2 01-06-68
3 01-06-67
df['date'] = pd.to_datetime(df['date'].str.replace(r'-(\d+)$', r'-19\1'))
print (df)
date
0 1970-01-06
1 1969-01-06
2 1968-01-06
3 1967-01-06
У вас есть format=
параметр в pd.to_datetime
Вы можете попробовать df['my_col'] = pd.to_datetime(df['my_col'], format='%d-%m-%Y')
Смотрите другой способ сделать это здесь: Конвертировать Pandas Column в DateTime