Считайте дату из файла Excel и получите дельту с сегодняшней датой. - PullRequest
0 голосов
/ 16 июня 2019

У меня есть файл Excel с некоторыми датами. Они отформатированы с dd-mm-yyyy. Я хотел бы взять каждую дату в этом столбце и получить ее дельту с сегодняшней датой.

Например, если в файле Excel указана такая дата: 20-6-2019, она вычтет сегодняшнюю дату (16/6/2019) и вернет 4.

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

Это был мой подход:

import pandas as pd
import datetime

file_name = pd.read_excel (r'C:\Users\Daniel Beilin\VSCodeProjects\ExcelReminder\test.xlsx')
df = pd.DataFrame(file_name, columns= ['Date'])
df['Date'] = pd.to_datetime(df.Date)

frmtedDate = df['Date']
today = pd.datetime.now().date()

delta = frmtedDate - today
print(delta)

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы можете установить формат в вашей функции pd.to_datetime(). В вашей ситуации это должно сработать:

df['Date'] = pd.to_datetime(df.Date, format="%d-%m-%Y)
0 голосов
/ 17 июня 2019

Вы можете использовать pd.Timestamp.today, а затем извлечь количество дней из временной шкалы, которую он возвращает с dt.days:

# Example dataframe
df = pd.DataFrame({'Date':['20-6-2019', '21-6-2019', '25-6-2019']})
df['Date'] = pd.to_datetime(df['Date'])

        Date
0 2019-06-20
1 2019-06-21
2 2019-06-25

(df['Date'] - pd.Timestamp.today()).dt.days

0    3
1    4
2    8
Name: Date, dtype: int64

Примечание в этом случае 3 * для 20-6-2019 является правильным, поскольку между датой сейчас и 20 июня существует 3 полных дня.

...