也许是一个愚蠢的问题,但我是初学者。我使用下面的代码来计算股票收益和平方对数收益:
#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 只股票做这件事……我怎样才能把上面放在循环中?
我猜想读取 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 的数据,我不知道如何循环其余的计算。
感谢您的任何建议,方向,线索。