def MAD_revisited(Risk_aversion,R_min,R_max,G_max,G_min):
m = AMPL()
m.read(“mad_portfolio_risk_adjusted.mod”)
m.set["ASSETS"] = list(assets.columns)
m.set["TIME"] = weekly_returns.index
m.param["weekly_returns"] = weekly_returns
m.param["mean_return"] = mean_return
#ampl.getParameter("daily_returns").setValues(daily_returns_train.stack())
#ampl.getParameter("mean_return").setValues(mean_return_train)
m.param["R_min"] = R_min
m.param["R_max"] = R_max
m.param["G_min"] = G_min
m.param["G_max"] = G_max
m.param["risk_aversion"] = Risk_aversion
m.param["w_lb"] = 0
m.param["w_ub"] = 0.2
m.param["R"] = 0.001
m.option["solver"] = SOLVER
#m.eval( "display R_max-R_min, G_max-G_min;" )
m.solve()
#ampl.var["w"].to_pandas()
#ampl.get_data("w").to_pandas().plot.barh()
#m.get_data["w"].to_pandas()
#weights_df_final = m.get_data("w").to_pandas().plot.barh()
weight_pandas=m.get_data("w").to_pandas()
s=m.var["w"].to_pandas()
return s
then I call
for Risk_aversion,R_min,R_max,G_max,G_min in zip(Risk_aversion,R_min,R_max,G_max,G_min):
ampl = MAD_revisited(Risk_aversion,R_min,R_max,G_max,G_min)
I want weights as pandas dataframe format for each iteration,weights_df_final = m.get_data(“w”).to_pandas().plot.barh() this works,but I want data format