В этом ответе я предполагаю, что ваши данные имеют следующий формат:
Material,Delivery Date,source desired delivery date
3334678,12/31/2017,12/31/2017
233433,12/31/2017,12/31/2017
3434343,1/5/2017,1/5/2017
3334567,1/5/2017,1/5/2017
546456,2/11/2017,2/11/2017
221295,4/10/2017,4/10/2017
Итак, предположим, что вы можете сделать это так:
import pandas as pd
df = pd.read_csv('odt.csv')
df['Delivery Date'] = pd.to_datetime(df['Delivery Date'], format='%m/%d/%Y')
df['source desired delivery date'] = pd.to_datetime(df['source desired delivery date'], format='%m/%d/%Y')
df2 = df[(df['Delivery Date'].dt.year >= 2017) & (df['Delivery Date'].dt.year <= 2018)]
df2['Diff Deliv Date'] = df2['Delivery Date'] - df2['source desired delivery date']
print(df2)
выход
Material Delivery Date source desired delivery date Diff Deliv Date
0 3334678 2017-12-31 2017-12-31 0 days
1 233433 2017-12-31 2017-12-31 0 days
2 3434343 2017-01-05 2017-01-05 0 days
3 3334567 2017-01-05 2017-01-05 0 days
4 546456 2017-02-11 2017-02-11 0 days
5 221295 2017-04-10 2017-04-10 0 days
Примечания
После загрузки данных приводятся типы столбцов, где следующие:
Material int64
Delivery Date object
source desired delivery date object
Вы можете проверить, принадлежат ли они вам. Затем вам нужно преобразовать 'Delivery Date'
и 'source desired delivery date'
в datetime, это делается в:
df['Delivery Date'] = pd.to_datetime(df['Delivery Date'], format='%m/%d/%Y')
df['source desired delivery date'] = pd.to_datetime(df['source desired delivery date'], format='%m/%d/%Y')
Затем просто отфильтруйте данные и вычислите разницу. Также я изменил:
df['Diff Deliv Date'] = diff_delivery_date
до df2
с учетом того, что ваш код печатает df2
в конце.