我在谷歌上搜索了一下,找到了如何生成一年中所有星期五的日期。
# get all Fridays in a year
from datetime import date, timedelta
def allfridays(year):
d = date(year, 1, 1) # January 1st
d += timedelta(days = 8 - 2) # Friday
while d.year == year:
yield d
d += timedelta(days = 7)
for d in allfridays(2022):
print(d)
结果:
2022-01-07
2022-01-14
2022-01-21
etc.
2022-12-16
2022-12-23
2022-12-30
现在,我正在尝试找出如何循环遍历一系列滚动日期,比如2022-01-07 + 60天,然后是2022-01-14 + 60天,然后是2022-01-21 + 60天。
step #1:
start = '2022-01-07'
end = '2022-03-08'
step #2:
start = '2022-01-14'
end = '2022-03-15'
理想情况下,我希望将开始和结束日期循环传递到另一个循环中,该循环如下所示...
price_data = []
for ticker in tickers:
try:
prices = wb.DataReader(ticker, start = start.strftime('%m/%d/%Y'), end = end.strftime('%m/%d/%Y'), data_source='yahoo')[['Adj Close']]
price_data.append(prices.assign(ticker=ticker)[['ticker', 'Adj Close']])
except:
print(ticker)
df = pd.concat(price_data)
3条答案
按热度按时间lmyy7pcs1#
首先,我们必须计算出如何得到给定年份的第一个星期五。接下来,我们将计算开始日和结束日。
示例输出:
备注
soat7uwm2#
这也许可行,你可以在lambda函数中添加条件,循环的结尾.
zpqajqem3#
哦,天哪,我以前完全错过了这个。下面的解决方案效果很好。