【问题标题】:Read date from Excel file and get a delta with today's date从 Excel 文件中读取日期并获取今天日期的增量
【发布时间】:2019-10-30 12:43:38
【问题描述】:

我有一个 Excel 文件,里面有一些日期。它们的格式为dd-mm-yyyy。 我想获取该列中的每个日期,并得到它与今天日期的增量。

例如,如果 Excel 文件的日期为:20-6-2019,它将减去今天的日期 (16/6/2019) 并返回 4。

我一直在尝试用 pandas 和 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)

【问题讨论】:

    标签: python excel pandas date delta


    【解决方案1】:

    您可以使用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
    

    注意在这种情况下,20-6-2019 的 3 天是正确的,因为从现在到 6 月 20 日之间有 3 天。

    【讨论】:

    • 很高兴我能帮上忙,享受 Python 和 Pandas 的工作 :) @DanielBeilin
    【解决方案2】:

    您可以在pd.to_datetime() 函数中设置格式选项。在您的情况下,这应该可以解决:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多