2016-09-09 4 views
0

2つのアセットのポートフォリオを作成しようとしていますが、最初のアセットのウェイトを[-0.5、 -0.4、... 0.4、0.5] 私は11のポートフォリオのそれぞれについて、リスクリターンポイントをループで計算することができます。それにもかかわらず、ループはリスク/リターンの組み合わせごとに新しいデータフレームを作成しますが、すべてのリスク/リターンポイントを含む単一のデータフレームを作成したいと考えています。ここでパンダのデータフレームに変化するポートフォリオウェイトのループの結果を返す

は私のコードです:

def imply_x (returns, x): 
y = 1-x 
returns.columns = ["A","B"] 
weighted_return = returns.A * x + returns.B * y 
name = str(round(x,2)) + "a" 
return pd.DataFrame({name: weighted_return}) 
def frange (start, stop, step): 
x = start 
while x < stop: 
    yield x 
    x += step 
for x in frange (-0.5,0.6,0.1): 
mean_ret = np.mean(imply_x(ret,x)) 
var_ret = np.percentile(imply_x(ret,x),95) 
tuple_ret = pd.DataFrame({"risk": var_ret, "mean": mean_ret}) 
print((tuple_ret)) 

そして、ここでは、誰もが1つのデータフレームにループからの結果を貼り付ける方法で私を助け場合、私は感謝するだろう結果

  mean  risk 
-0.5a 0.000181 0.018354 
      mean  risk 
-0.4a 0.000166 0.015611 
      mean  risk 
-0.3a 0.000151 0.012688 
      mean risk 
-0.2a 0.000136 0.0099 
      mean  risk 
-0.1a 0.000121 0.007454 
      mean  risk 
-0.0a 0.000106 0.005405 
      mean  risk 
0.1a 0.000092 0.004576 
      mean  risk 
0.2a 0.000077 0.005007 
      mean  risk 
0.3a 0.000062 0.006613 
      mean  risk 
0.4a 0.000047 0.008738 
      mean  risk 
0.5a 0.000032 0.011082 

答えて

関連する問題