Python:增加每个循环的日期

2024-09-26 22:42:46 发布

您现在位置:Python中文网/ 问答频道 /正文

对于当前项目,我计划在每次迭代/循环时将日历日期的值增加3个月。因此start_date的值应该是[1st iteration]: 01/01/2017, [2nd interation] 01/04/2017等。对于end_date,它应该相应地产生[1st iteration]: 31/03/2017, [2nd interation] 30/06/2017

我原本以为这是一个简单的问题,但不知怎么的,脚本并没有按计划工作(也有很多线程讨论如何一次增加值,而不是如何在几个循环中执行)。有人知道如何调整吗

相应的代码如下所示:

import datetime
from dateutil.relativedelta import *

for i in df.iterrows():
    start_date = '01/01/2017'
    start_date = start_date + relativedelta(months=+3)
    end_date = '31/03/2017'
    end_date = end_date + relativedelta(months=+3)

    print(start_date)
    print(end_date)

Tags: 项目import脚本datestart计划endprint
1条回答
网友
1楼 · 发布于 2024-09-26 22:42:46

您的问题是您正在初始化循环中的start_dateend_date。只要在循环外初始化它们一次,然后像现在一样继续这个过程

import datetime
from dateutil.relativedelta import *

# year, month, day
start_date = datetime.date(2017, 1, 1)
end_date = datetime.date(2017, 3, 31)

for i in df.iterrows():
    start_date += relativedelta(months=3)
    end_date += relativedelta(months=3)

    print(start_date)
    print(end_date)

相关问题 更多 >

    热门问题