Как преобразовать в datetime, если формат даты постепенно меняется через столбец? - PullRequest
1 голос
/ 24 октября 2019

df.head ():

    start_date  end_date

0   03.09.2013  03.09.2025
1   09.08.2019  14.05.2020
2   03.08.2015  03.08.2019
3   31.03.2014  31.03.2019
4   02.02.2015  02.02.2019
5   21.08.2019  21.08.2024

когда я делаю df.tail ():

        start_date          end_date

30373   2019-07-05 00:00:00 2023-07-05 00:00:00
30374   2019-06-11 00:00:00 2023-06-11 00:00:00
30375   19.01.2017 2020-02-09 00:00:00 #these 2 start dates are just same as in head
30376   11.12.2009 2011-12-11 00:00:00
30377   2019-07-30 00:00:00 2023-07-30 00:00:00

когда я делаю

df[start_date] = pd.to_datetime(df[start_date]) 

некоторые датыконвертировать месяц в дни. Формат несовместим в колонке. Как правильно конвертировать?

1 Ответ

1 голос
/ 24 октября 2019

Используйте dayfirst=True параметр:

df['start_date'] = pd.to_datetime(df['start_date'], dayfirst=True) 

Или укажите формат http://strftime.org/:

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

df['start_date'] = pd.to_datetime(df['start_date'], dayfirst=True)
df['end_date'] = pd.to_datetime(df['end_date'], dayfirst=True)
print (df)
  start_date   end_date
0 2013-09-03 2025-09-03
1 2019-08-09 2020-05-14
2 2015-08-03 2019-08-03
3 2014-03-31 2019-03-31
4 2015-02-02 2019-02-02
5 2019-08-21 2024-08-21
...