Преобразование сложной формулы Excel в формулу Python - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь воссоздать таблицу Excel через python, есть много формул, которые мне нужно перевести. У меня есть следующая формула

= IFERROR (MIN (1,05+ (1-0,05) EXP ((SUMIFS (O: O, AB: AB, AB2)) -SUMIFS (AF: AF, AB: AB, AB2)) / (2 (1-0.05) * SUMIFS (AT: AT, AB: AB, AB2)))), 1)

Я изменил это так, чтобы там al oop для одной из переменных, так что это отфильтровывает все остальные. Я считаю, что теперь я зацикливаюсь на столбце AB, поэтому мне больше не нужно использовать sumif. Я должен быть в состоянии суммировать необходимые столбцы. Однако я все еще не знаю, как воспроизвести ошибку и как взять экспоненту определенных функций. Теперь у меня есть следующий код

amount1 = df_Temp [df_Temp ["IMED_PARNT_NAM"] == ns] .sum () ["MTM_AMT"]

amount2 = df_Temp [df_Temp ["IMED_PARNT_NAM" ] == ns] .sum () ['Залог / # Сделки в сетевом наборе']

amount3 = df_Temp [df_Temp ["IMED_PARNT_NAM"] == ns] .sum () ['Add-On' ]

сумма4 = сумма1 - сумма2 / 2 * (1 - 0,05) * сумма3

df_Temp ['Multiplier'] = np.where (0,05 + (1 - 0,05) * np.exp (сумма 4)> 1,05 + (1 - 0,05) * np.exp (сумма 4), 1)

Однако я не думаю, что вышеизложенное дает мне желаемый результат, который мне требуется из формулы Excel на первом месте. Любая помощь приветствуется!

Спасибо,

Киран

1 Ответ

2 голосов
/ 17 января 2020

Проверьте пакет формул на PyPi . Он содержит несколько полезных инструментов для всего, что связано с формулами Excel.

Может пригодиться следующий пример:

>>> import formulas
>>> func = formulas.Parser().ast('=(1 + 1) + B3 / A2')[1].compile()
...