我的剧本有问题。
end = date(2012, 6, 20)
start = date(2012, 5, 01)
delta = end - start
delta = delta.days
print 'The number of days taken into account for training periods testing:', delta
all_training_periods=[pd.date_range(start=dt.datetime(2012, 5, 01+k),end=dt.datetime(2012, 6,20),freq='10T') for k in range(0,delta)]
问题是我有一条错误消息告诉我:
File "<ipython-input-192-57c97670a7f1>", line 1, in <module>
all_training_periods=[pd.date_range(start=dt.datetime(2012, 5, 01+k),end=dt.datetime(2012, 6,20),freq='10T') for k in range(0,delta)]
ValueError: day is out of range for month
这里的事情是,我希望从5月1日到6月20日,从5月2日到6月20日,从6月19日到6月20日,有不同的培训期。
答案 0 :(得分:1)
我建议增加这样的日期:
datetime.date(2012, 5, 1) + datetime.timedelta(k, 0)
答案 1 :(得分:0)
在您的代码中
end = date(2012, 6, 20)
start = date(2012, 5, 01)
delta = end - start
delta.days
在哪里评估50.然后在你的行中:
dt.datetime(2012, 5, 01+k)
最终将会出现以下内容:
dt.datetime(2012, 5, 01+49)
然后datetime
将抛出异常,因为五月没有49天。没有一个月超过31天。
试试这个:
from datetime import timedelta
dt.datetime(2012, 5, 01) + timedelta(days=k)
这将进行正确的计算。