#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 не очень помогает при форматировании.