Python pandas имеет функцию pct_change, которую я использую для расчета возвратов цен на акции в фрейме данных:
ndf['Return']= ndf['TypicalPrice'].pct_change()
Я использую следующий код для получения логарифмических возвратов, но он дает те же самые значения, что и функция pct.change():
ndf['retlog']=np.log(ndf['TypicalPrice'].astype('float64')/ndf['TypicalPrice'].astype('float64').shift(1))
#np is for numpy