дата_кадра to_datetime неправильно читает даты - PullRequest
0 голосов
/ 26 августа 2018

Часть файла Excel, как показано ниже.

Action Date1               Action Date2
15.06.2018 - 06:06:30   17.06.2018 - 15:52:35
09.07.2018 - 10:12:13   09.07.2018 - 11:39:42
09.08.2018 - 15:21:45   
10.07.2018 - 10:00:13   00.00.0000 - 00:00:00

......

Я хочу извлечь последние даты действий, и у меня есть следующие коды

dates = df.fillna(axis=1, method='ffill')
df['Latest date'] = dates[dates.columns[-1]]

Но эти коды возвращают правильные даты, как показано ниже.

2018-06-17 15:52:35
2018-09-07 11:39:42
2018-09-08 15:21:45
2018-10-07 10:00:13

.....

Я пытался

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

но это все равно дает мне тот же результат.

1 Ответ

0 голосов
/ 26 августа 2018

Используйте параметр format, отметьте http://strftime.org/:

df['Latest date']=pd.to_datetime(df['Latest date'],format="%d.%m.%Y - %H:%M:%S")

Или параметр dayfirst=True:

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

print (df)
          Latest date
0 2018-06-15 06:06:30
1 2018-07-16 08:53:49
2 2018-07-09 10:12:13
3 2018-08-09 15:21:45

РЕДАКТИРОВАТЬ: Добавить параметр errors='coerce' для преобразования не разбираемых значений в NaT:

df = df.apply(lambda x: pd.to_datetime(x,format="%d.%m.%Y - %H:%M:%S", errors='coerce'))
dates = df.ffill(axis=1)
df['Latest date'] = dates.iloc[:, -1]
print (df)
        Action Date1        Action Date2         Latest date
0 2018-06-15 06:06:30 2018-06-17 15:52:35 2018-06-17 15:52:35
1 2018-07-09 10:12:13 2018-07-09 11:39:42 2018-07-09 11:39:42
2 2018-08-09 15:21:45                 NaT 2018-08-09 15:21:45
3 2018-07-10 10:00:13                 NaT 2018-07-10 10:00:13
...