我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去

我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去,python,Python,我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去。 代码如下: import pandas as pd import statsmodels.api as smf from datetime import date import pandas_datareader.data as web s=date(2017,3,30) e=date(2020,2,28) fund='AACIX' value_funds=[] growth_funds

我是python新手,正在寻求帮助。我试图为10个不同的共同基金管理Fama French,并坚持下去。 代码如下:

import pandas as pd
import statsmodels.api as smf
from datetime import date
import pandas_datareader.data as web

s=date(2017,3,30)
e=date(2020,2,28)
fund='AACIX'

value_funds=[]
growth_funds=[]
#get the data
ff_data=pd.read_csv(r'C:\Users\ff.csv')

def get_returns(fund):
    adj_close=web.DataReader(fund,'yahoo',s,e)['Adj Close']
    fund_rets=adj_close.pct_change()
    fund_rets=fund_rets.dropna()
    returns_data=pd.DataFrame(fund_rets)
    return returns_data

def prepare_data():
    portfolio=pd.DataFrame(get_returns(fund))
    ff_data['fund']=list(portfolio['Adj Close'])
    ff_data['excess']=ff_data['fund']-ff_data['RF']
    ff_data.drop(['fund'], axis=1)
    ff_data.rename(columns={"Mkt-RF":"mkt_excess"}, inplace=True)
    return ff_data

# now run the regression
def run_regression():
    ff_data=prepare_data()
    model = smf.formula.ols(formula = "excess ~ mkt_excess + SMB + HML", data = ff_data).fit()
    print(model.summary())
    return model.params[3]


def sort_funds():
    HML=run_regression()
    if HML>0:
        value_funds.append()
    else:
        growth_funds.append()
    return value_funds

如何在get_returns(fund)函数中循环多个标记,然后对每个标记进行回归?

首先确保您有一个基金列表:

funds = ["AACIX", ...]
然后在run_回归函数中,执行以下操作:

for fund in funds:
     ff_data = prepare_data(fund)  # Update prepare_data to take an arg
     # etc...

请重复介绍之旅,尤其是和。你问的是如何将循环应用于序列——这是一个教程问题,而不是堆栈溢出。我知道了,谢谢!但是我怎样才能在表格中收集model.params[3],在表格中我可以看到基金的名称和第三个系数(model.params[3])?@ivan22这听起来完全是另一个问题,不是吗?