Изменение формата дат во всем столбце для нескольких столбцов

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

У меня есть набор данных, скажем:

 DateJoined      Name       Number      DateLeft

11/03/2015      Tom        001199      11/03/2019
11/03/2016      Bil        001197      12/03/2019
11/03/2017      Mat        001196      13/03/2019
11/03/2018      Jon        001195      14/03/2019
  

Я хочу выбрать только столбцы, в которых есть дата, и изменить формат всех дат в этом столбце на месяц / дату / год.

Я уже пытался поиграть с подобным кодом, но он выдает ошибки.

 date_cols=[col for col in dataset.columns if 'date' in col]
for col in dataset[date_cols]:
  for row in dataset[date_cols]:
   dataset[date_cols]=pd.to_datetime(dataset[date_cols]).dt.strftime('%d-%m-%Y')
   next(row)
next(col)
  

Любая помощь была бы оценена. Я все еще новичок в pandas и python

Ответ №1:

Здесь вам не нужен цикл for — используя filter

 s=df.filter(like='Date').apply(pd.to_datetime,dayfirst=True)
df[s.columns]=s
df
  DateJoined Name  Number   DateLeft
0 2015-03-11  Tom    1199 2019-03-11
1 2016-03-11  Bil    1197 2019-03-12
2 2017-03-11  Mat    1196 2019-03-13
3 2018-03-11  Jon    1195 2019-03-14