Переменная Pandas, использующая запаздывающие значения

#pandas #iteration

#панды #итерация

Вопрос:

Я пытаюсь написать код Pandas для расчета бухгалтерской амортизации. Математика очень проста:

 depreciation(t)=depr_rate * [cumsum(investments(t)) - cumsum(depreciation(t-1))]
 

Например (с нормой амортизации 30%):

Год 1: Инвестиции 100 и амортизация 30 Год 2: Инвестиции 100 и амортизация 51 Год 3: Инвестиции 0 и амортизация 35,7

Я ищу способ сделать это в Pandas.

Мое исправление до сих пор состояло в том, чтобы преобразовать столбец в список, а затем выполнить итерацию по списку следующим образом:

 inv_cum=list(df_inv.investment_cumsum)
depr_list=[]
for num in range(len(inv_cum)):
    depr_list.append(depr_rate*(inv_cum[num]-sum(depr_list[:max(0,num)])))
df_inv['depreciations']=depr_list 
 

Исправление работает нормально, но я бы предпочел использовать функциональность Pandas. Любая помощь будет оценена по достоинству.

Комментарии:

1. Пожалуйста, добавьте входные данные и ожидаемый результат

2. Привет, Дэни. Пытались включить данные, но markdown не очень помогает при форматировании.