Преобразуйте столбец даты (строку) в дату и время в соответствии с форматом

#python #pandas #dataframe

Вопрос:

Я пытаюсь скрыть столбец следующей даты (str) до datetime64 и говорю, что формат не совпадает, может ли кто-нибудь помочь мне, пожалуйста 🙂

Колонка:

df[«Дата»]

0 15/7/21 … 2541 13/9/21 тип dtype: объект

Что я пытаюсь:

pd.to_datetime(df[«Дата»], формат = «%d/%m/%Y»)

Ошибка значения: данные о времени «15/7/21» не соответствуют формату «%d/%m/%Y » (совпадение)

Я тоже стараюсь:

pd.to_datetime(df[«Дата»].astype(«дата-время 64»), формат=’%d/%m/%Y’)

И он преобразует его в дату и время, но есть какая-то дата, день в месяце.

Кто-нибудь знает, что делать ?

Ответ №1:

%Y ожидает 4-значный год. Используйте %y в течение 2-значного года (см. документы):

 >>> import pandas as pd
>>> df = pd.DataFrame({'Date':['15/7/21','13/9/21']})
>>> df['Date']
0    15/7/21
1    13/9/21
Name: Date, dtype: object
>>> pd.to_datetime(df['Date'].astype('datetime64'),format='%d/%m/%y')
0   2021-07-15
1   2021-09-13
Name: Date, dtype: datetime64[ns]
 

Обратите внимание, что pandas это довольно хорошо угадывает формат:

 >>> pd.to_datetime(df['Date'])
0   2021-07-15
1   2021-09-13