2013-03-08 23 views
8

Mam serię czasową zwrotów, toczącą się wersję beta i toczącą się alfa w pandas DataFrame. Jak mogę obliczyć waloryzującą annualizację alfa dla kolumny alfa w DataFrame? (Chcę zrobić odpowiednik = produktu (1+ [tyłu 12 miesięcy]) - 1 w programie Excel)Jak obliczyć kroczący skumulowany produkt na Pandach DataFrame

  SPX Index BBOEGEUS Index Beta  Alpha 
2006-07-31 0.005086 0.001910 1.177977 -0.004081 
2006-08-31 0.021274 0.028854 1.167670 0.004012 
2006-09-30 0.024566 0.009769 1.101618 -0.017293 
2006-10-31 0.031508 0.030692 1.060355 -0.002717 
2006-11-30 0.016467 0.031720 1.127585 0.013153 

Byłem zaskoczony, aby zobaczyć, że nie było "rolling" funkcja wbudowana w pand na to, ale miałem nadzieję, że ktoś może pomóc z funkcją, którą mogę następnie zastosować do kolumny df ['Alpha'] za pomocą pd.rolling_apply.

Z góry dziękujemy za każdą pomoc, którą masz do zaoferowania.

Odpowiedz

15

to zrobi?

import pandas as pd 
import numpy as np 

# your DataFrame; df = ... 

pd.rolling_apply(df, 12, lambda x: np.prod(1 + x) - 1)