Панды to_datetime неожиданно меняет год - PullRequest
1 голос
/ 15 апреля 2019

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

Ответы [ 2 ]

3 голосов
/ 15 апреля 2019

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

Смотрите другой способ сделать это здесь: Преобразование столбца панддо даты

2 голосов
/ 15 апреля 2019

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

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
...