Разница между двумя датами в лазурной мл - PullRequest
0 голосов

Я пытаюсь найти разницу между двумя датами с точки зрения количества дней. Я пытаюсь следующий код

d1=pd.to_datetime(dataframe1['Order Date'])
d=str(d1)
dates=datetime.strptime(d,'%m-%d-%Y')
d2=pd.to_datetime(dataframe1['Dispatch Date'])
dd=str(d2)
dates1=datetime.strptime(dd,'%m-%d-%Y')
dataframe1['Months_difference']=dates1-dates

Но эта ошибка отображается так:

ValueError: данные времени '0 2017-02-13 \ n1 2017-02-24 \ n2 2017-03-02 \ n3 2017-03-06 \ n4 2017-03-06 \ n5 2017-03-06 \ n6 2017-03-11 \ n7 2017-03-23 ​​\ n8 2017-03-23 ​​\ n9 2017-03-24 \ n10 2017-04-07 \ n11 2017-04-07 \ n12 2017-04-07 \ n13 2017-04-07 \ n14 2017-04-07 \ n ... \ n855 2018-02-02 \ n856 2018-02-02 \ n857 2018-02-02 \ n858 2018-02-02 \ n859 2018-02 -02 \ n860 2018-02-01 \ n861 2018-02-06 \ n862 2018-03-15 \ n863 2018-03-21 \ n864 2018-03-21 \ n865 2018-04-05 \ n866 2018-04- 07 \ n867 2018-04-07 \ n868 2018-04-11 \ n869 2018-04-10 \ nИмя: Дата заказа, длина: 870, dtype: datetime64 [ns] 'не соответствует формату'% m-% d- % Y» Процесс возвращен с ненулевым кодом выхода 1 Как решить это

1 Ответ

0 голосов
/ 04 мая 2018

IIUC, вы можете сделать все это из pandas, без модуля datetime. Я предполагаю, что ваш начальный фрейм данных выглядит примерно так:

>>> dataframe1
  Dispatch Date  Order Date
0    2017-03-02  2017-02-13
1    2017-03-06  2017-02-24

В этом случае вы можете сделать:

# set columns to datetime:
dataframe1['Order Date'] = pd.to_datetime(dataframe1['Order Date'])
dataframe1['Dispatch Date'] = pd.to_datetime(dataframe1['Dispatch Date'])
# Make a new column for the difference in days
dataframe1['day_diff'] =  dataframe1['Dispatch Date'] - dataframe1['Order Date']

Какие выходы:

>>> df
  Dispatch Date Order Date day_diff
0    2017-03-02 2017-02-13  17 days
1    2017-03-06 2017-02-24  10 days

Объяснение : при вычитании двух объектов даты и времени в pandas получается объект Timedelta (как в новом столбце day_diff). Если вы хотите, чтобы он представлял целое число дней, просто добавьте dt.days к этой последней команде:

dataframe1['day_diff'] =  (dataframe1['Dispatch Date'] - dataframe1['Order Date']).dt.days
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...