Pandas преобразует столбец year в столбец date

#python #pandas #dataframe #datetime

#python #pandas #фрейм данных #дата и время

Вопрос:

У меня есть фрейм данных pandas со столбцом, содержащим годы:

 col1 col2 ... year ... coln
 -    -   ... 2020 ...  -
 -    -   ... 2021 ...  -
 -    -   ... 2022 ...  -
  

Я хочу преобразовать это в date, сопоставив год с 1-й датой этого года, например:

 col1 col2 ... year       ... coln
 -    -   ... 2020-01-01 ...  -
 -    -   ... 2021-01-01 ...  -
 -    -   ... 2022-01-01 ...  -
  

Я пробовал это:

 df['year'] = pd.to_datetime(df['year'], format='%Y%m%d')
  

Но это выдает мне эту ошибку:

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

Как я могу это исправить?

Комментарии:

1. Я всегда проверяю strftime.org для краткого ознакомления с форматами дат.

Ответ №1:

Используйте %Y для сопоставления year в формате YYYY , но я думаю, что этот параметр следует опустить:

 df['year'] = pd.to_datetime(df['year'], format='%Y')
  

 df['year'] = pd.to_datetime(df['year'])
  

Ответ №2:

Вы можете попробовать это:

 df['year'] = df['year'].astype('str')   "-01-01"
print(df)