2013-03-08 38 views
8

Tôi có chuỗi thời gian trả về, phát hành phiên bản beta và cán alpha trong DataFrame gấu trúc. Làm cách nào tôi có thể tính toán alpha được tạo hàng năm cho cột alpha của DataFrame? (Tôi muốn làm tương đương với = PRODUCT (1+ [trailing 12 tháng]) - 1 trong excel)Làm thế nào để tính toán sản phẩm tích luỹ trên Pandas 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 

Tôi đã ngạc nhiên khi thấy rằng không có "lăn" chức năng xây dựng thành gấu trúc cho điều này, nhưng tôi đã hy vọng ai đó có thể giúp với một chức năng mà tôi có thể áp dụng cho cột df ['Alpha'] bằng cách sử dụng pd.rolling_apply.

Cảm ơn trước vì bất kỳ trợ giúp nào bạn cung cấp.

Trả lời

15

điều này sẽ làm gì?

import pandas as pd 
import numpy as np 

# your DataFrame; df = ... 

pd.rolling_apply(df, 12, lambda x: np.prod(1 + x) - 1) 
Các vấn đề liên quan