Usando rolling_apply en un objeto DataFrame

Estoy tratando de calcular el Precio Promedio Ponderado por Volumen de forma continua.

Para hacer esto, tengo una función vwap que hace esto por mí, así:

def vwap(bars):
    return ((bars.Close*bars.Volume).sum()/bars.Volume.sum()).round(2)

Cuando intento usar esta función con rolling_apply, como se muestra, aparece un error:

import pandas.io.data as web
bars = web.DataReader('AAPL','yahoo')
print pandas.rolling_apply(bars,30,vwap)

AttributeError: 'numpy.ndarray' object has no attribute 'Close'

El error tiene sentido para mí porque la aplicación rolling_apply no requiere DataSeries o un ndarray como entrada y no un DataFrame ... de la forma en que lo estoy haciendo.

¿Hay alguna forma de utilizar rolling_apply en un DataFrame para resolver mi problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta