Финансовое дисконтирование с использованием подхода векторизации PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Финансовое дисконтирование с использованием подхода векторизации Python

Сообщение Anonymous »

Я хочу воспроизвести переменную pv_exp_man :
import pandas as pd
df = pd.DataFrame({
'time' : [0,1,2,3,4,5],
'disc_fact' : [0.99,0.87,0.74,0.64,0.54,0.44],
'exp_man' : [0,100,95.45,93.11,87.46,81.77],
'pv_exp_man' : [204.211875, 206.274622, 137.097266, 89.816576, 47.228400, 0.000000]
})

Формула:
  • pv_exp_main(time) = 0, если time = 5
  • pv_exp_main(time) = [pv_exp_man(time+1) + exp_man(time)] * disk_fact(time), если time < 5
Я могу сделать цикл, но я хочу вычислить это, используя подход векторизации. Возможно ли это?
Циклический подход:
for k in range(len(df)-1,-1,-1):
if k == len(df)-1:
df.loc[df.time == k, 'pv_exp_man'] = 0.0
else:
df.loc[df.time == k, 'pv_exp_man'] = df.loc[df.time == k, 'disc_fact'].values[0] * (df.loc[df.time == k, 'exp_man'].values[0]+df.loc[df.time.isin([k+1]), 'pv_exp_man'].values[0])


Подробнее здесь: https://stackoverflow.com/questions/790 ... n-approach
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»