Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算两个日期之间的天数?_Python_Python 3.x_Date_Jupyter Notebook - Fatal编程技术网

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

Python 如何计算两个日期之间的天数?,python,python-3.x,date,jupyter-notebook,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.

如果我有两个日期(例如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循环

如果您首先将文本转换为datetime,您会发现日期更容易处理。 然后计算一个能回答你问题的答案就变得很简单了

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)

类似地,该选项允许您构建一个与两个现有列不同的列。

虽然此代码可能会解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。谢谢你的帮助!实际上,我必须在我的数据框中计算许多日期。我使用以下代码:对于范围内的j(datenumbers[I]):date_format=“%Y%m%d”a=datetime.strtime(str(df_first_day.date[j]),date_format)b=datetime.strtime(str(df_first_day.exdate[j]),date delta=(b-a).days df_first_day.days_to_expire[j]=deltaI需要将两个日期之间的所有差异放在我的数据框的一列中。我想知道是否有更好的方法来避免使用for循环。