У меня есть dataframe, который выглядит следующим образом:Странные результаты timedelta с пандами
df = pd.DataFrame({'date_sent': ['06/11/2015', '', 'Not required', '06/11/2015'],
'date_published': ['06/11/2015', '', '', '23/01/2016']})
Я хочу, чтобы вычислить разницу между двумя датами в каждой строке, поэтому сначала преобразовать строки на сегодняшний день объектов:
df.date_published = pd.to_datetime(df.date_published.str.replace('Not required', ''))
df.date_sent = pd.to_datetime(df.date_sent.str.replace('Not required', ''))
Тогда я вычесть одно из другого:
df['delay'] = df.date_published - df.date_sent
Но это дает мне своеобразные результаты - я t не 226 дней с 06/11/2015 по 23/01/2016:
df
date_published date_sent delay
0 2015-06-11 2015-06-11 0 days
1 NaT NaT NaT
2 NaT NaT NaT
3 2016-01-23 2015-06-11 226 days
Что я делаю неправильно? Я использую pandas v0.18.
Ah - Я считаю, что мой формат даты неверен? Я пробовал 'df.date_published = pd.to_datetime (df.date_published.str.replace ('Не требуется', ''), format = '% d /% m /% Y')', но получить ошибку. – Richard
Я не могу воспроизвести финальный стол, используя pandas 18.1 ... Вы не конвертируете '06/11/2015 'и т. Д. В datatime. только «не требуется» – Merlin