2016-03-07 120 views
3

为什么while循环永不停止?while循环在日期循环中不停止

t = pd.to_datetime('2016.03.04') 
T = pd.to_datetime('2019.09.04') 
dates = T 

while dates > t: 

    dates = T- pd.DateOffset(years=1) 
    print(dates) 

请帮

+0

因为您的条件总是为真;) – MaxU

+1

将其更改为:'日期 - = pd.DateOffset(年= 1)' – MaxU

+0

作为一般性建议,我建议不要创建仅在大小写不同的变量'和'T'),因为这会让读者感到困惑(和*可读性*)。 – Carpetsmoker

回答

2

的问题是,你不总结的偏移量。

改变这一行:

dates = T - pd.DateOffset(years=1) 

这样:

dates -= pd.DateOffset(years=1) 
2

我猜你想要做这样的事情,而不是循环:

dates = pd.date_range('2016.03.04',periods=4,freq=pd.DateOffset(years=1)) 
print(dates) 

输出:

DatetimeIndex(['2016-03-04', '2017-03-04', '2018-03-04', '2019-03-04'], dtype='datetime64[ns]', freq='<DateOffset: kwds={'years': 1}>')