我有一个函数需要根据它们的索引对两个数据帧中的行进行操作(该函数应用OLS回归模型)。数据帧是通过对外部数据源的API调用动态填充的,因此内容会有所不同。
为了演示,这是我使用显式引用提取数据帧的代码。
etf = (etfta.loc['SPY'])
equity = (symbolsta.loc['DOCU'])
equity.set_index('date', inplace=True)
etf.set_index('date', inplace=True)
monthly_prices = pd.concat([equity['close'], etf['close']], axis=1)
monthly_prices.columns = ['Equity', 'ETF']
monthly_returns = monthly_prices.pct_change(1)
clean_monthly_returns = monthly_returns.dropna(axis=0) # drop first missing row
# split dependent and independent variable
X = clean_monthly_returns['Equity']
y = clean_monthly_returns['ETF']
# Add a constant to the independent value
X1 = sm.add_constant(X)
# make regression model
model = sm.OLS(y, X1)
# fit model and print results
results = model.fit()
print(results.summary())
print(results.rsquared)
这在股票数据框架中的DOCU和ETF数据框架中的SPY上运行回归。如果我调出要显式使用的行,显然可以正常工作,但是我希望能够循环执行并多次执行该功能。
应该专注于弄清楚如何从我的'symbolsta'数据帧(其中equity = (symbolsta.loc['DOCU']
当前已进行硬编码)中的索引动态创建变量名,或者搞清楚如何迭代开始该操作的concat操作。全部关闭。
我希望人们对解决此问题的最佳方法有任何想法。