Использование roll_apply для объекта DataFrame

Я пытаюсь рассчитать средневзвешенную цену по объему.

Для этого у меня есть функция vwap, которая делает это для меня, вот так:

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

Когда я пытаюсь использовать эту функцию с roll_apply, как показано, я получаю сообщение об ошибке:

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'

Ошибка имеет смысл для меня, потому что Rolling_apply требует не DataSeries или ndarray в качестве входных данных, а не dataFrame .. как я это делаю.

Есть ли способ использовать roll_apply для DataFrame для решения моей проблемы?

Ответы на вопрос(3)

Ваш ответ на вопрос