datetime'对象没有属性timedelta`计算Python的问题

时间:2019-02-04 16:32:02

标签: python python-3.x datetime dataframe timedelta

我正在尝试创建要添加到数据框的日期列表。

该列表包含一个开始日期(该数据框最后一次更新),直到今天为止。

我的代码如下:

from datetime import datetime
from datetime import timedelta

# get today's date
todays_date = datetime.now()

# read in last date acquired
last_date = old_df['Market Date'].iloc[-1]

last_date以str格式开始:

print(last_date)
2019-01-12

然后我更改为日期时间:

last_date = datetime.strptime(last_date, '%Y-%M-%d')

# get difference in dates from now since the last update
numdays = todays_date - last_date
days = int(numdays / timedelta(days=1))

date_list = [todays_date - last_date.timedelta(days=x) for x in range(0, days)]
date_list = [i.strftime('%Y%m%d') for i in date_list]

我得到了错误:

  File "<ipython-input-64-29fe97665970>", line 35, in <listcomp>
    date_list = [todays_date - last_date.timedelta(days=x) for x in range(0, days)]
AttributeError: 'datetime.datetime' object has no attribute 'timedelta'

last_date的格式是,是日期时间,所以我不确定为什么会出现此错误。

1 个答案:

答案 0 :(得分:2)

timedelta()datetime.datetime模块中的功能。

但是您尝试将其作为datetime.datetime对象的属性来访问。

todays_date - timedelta(days=x)应该可以正常工作。