Панды to_datetime неожиданно меняет год

1

У меня есть столбец даты, который после использования панд 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, библиотеку маятника, но все равно получал ошибку. Как я могу решить эту проблему?

Теги:
pandas
datetime
datetime-format
python-datetime

2 ответа

2
Лучший ответ

Использование:

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
1

У вас есть format= параметр в pd.to_datetime
Вы можете попробовать df['my_col'] = pd.to_datetime(df['my_col'], format='%d-%m-%Y')

Смотрите другой способ сделать это здесь: Конвертировать Pandas Column в DateTime

Ещё вопросы

Сообщество Overcoder
Наверх
Меню