Возможно глупый вопрос, но я новичок. Я использую приведенный ниже код для расчета доходности акций и квадратов журналов:
#read csv
stock1 = pd.read_csv('http://mydata.com/q/c/?d=stock1%d1=20190101&d2=20200101')
stock2 = pd.read_csv('http://mydata.com/q/c/?d=stock2%d1=20190101&d2=20200101')
#calculate return
stock1['r'] = np.log(stock1.close) - np.log(stock1.close.shift(1))
stock2['r'] = np.log(stock2.close) - np.log(stock2.close.shift(1))
#calculate squared returns and rolling returns
stock1_sq_r = stock1['r'] * stock1['r']
stock2_sq_r = stock2['r'] * stock2['r']
rolled_s1_sq_r = stock1_sq_r.rolling(window=5).sum()
rolled_s2_sq_r = stock2_sq_r.rolling(window=5).sum()
Это работает как шарм, но мне нужно сделать это для 100 акций ... Как я могу поставить выше в l oop?
Я думаю, что l oop для чтения csv должен быть похож на это:
stocks = {'stock1', 'stock2', 'stock3'}
for stock in stocks:
url = ('http://http://mydata.com/q/c/?d={}%d1=20190101&d2=20200101')
dfs = pd.read_csv(url.format(stock))
, но он читает только данные для stock3, и я понятия не имею, как l oop Остальные расчеты.
Спасибо за любые предложения, указания, подсказки.