如何计算两个日期之间的天数?

时间:2019-03-30 15:05:00

标签: python python-3.x date jupyter-notebook

如果我有两个日期(例如19960104和19960314),获取这两个日期之间的天数的最佳方法是什么? 实际上,我必须在数据框中计算许多日期。我使用代码:

`for j in range(datenumbers[i]):
    date_format = "%Y%m%d"
    a = datetime.strptime(str(df_first_day.date[j]), date_format)
    b = datetime.strptime(str(df_first_day.exdate[j]), date_format)
    delta = (b - a).days
    df_first_day.days_to_expire[j] = delta`

我需要将两个日期之间的所有差异都放在数据框的某一列中。我想知道是否有更好的方法不使用for循环

1 个答案:

答案 0 :(得分:0)

如果您首先将文本转换为日期时间,则会发现日期更容易处理。 然后,计算一个timedelta来回答您的问题变得很简单。

import datetime as dt

fmt = '%Y%m%d'
d1 = dt.datetime.strptime('19960104', fmt)
d2 = dt.datetime.strptime('19960314', fmt)
print((d2 - d1).days)

这将显示:

70

编辑

如果您选择定义函数:

def num_to_timestamp(ymd):
    return dt.datetime.strptime(str(num), '%Y%m%d')

然后您可以方便地将其应用于列:

df['date'] = df['date'].apply(num_to_timestamp)

类似地,axis=1选项可让您构造与两个现有列不同的列。