2017-08-16 5 views
0

に月次リターンを与え、年間の標準偏差を計算する私の質問があるは、私は月次リターンを計算する機能持たパンダ

  FOX  FOXA  MMM 
Date 
2012-01 5.4  3.2  -.08 
2012-02 .07  1.2  -.62 
... 
2017-08 -.2  -4.2  2.3 

を - 私はどのようにして標準偏差を計算できますか?私の予想される出力は、同じ形式(列と株価指数で株式)でdfを維持するが、毎月のリターンを考慮して、年間標準偏差を計算することである(したがって、株式の場合は約7の値が必要)。

は、これまで私が試してみました:

sd = pd.DataFrame() 
x = -13 
y = -1 
for date in reversed(periods):      #where periods is ea year 
    sd[date] = np.std(monthly_returns.iloc[x:y])  
x -= 12 
y -= 12 
if x < -72: 
    break 

は、これは動作します - しかし、日付と列が交換され、そしてあなたの例では、この

+0

パンダオブジェクトにループを適用すると、99%のケースで間違っています。 – DyZ

+0

私はこのような1つのライナーを知っていた、私はインデックスについて知りませんでした。 –

答えて

1
monthly_returns.groupby(monthly_returns.index.year).std() 

を行うにはクリーンなコードがあった場合には思っていた。

#   FOX  FOXA  MMM 
#2012 3.768879 1.414214 0.381838 
#2017  NaN  NaN  NaN 
関連する問題