Финансовое моделирование с использованием фреймворка данных Pandas ⇐ Python
Финансовое моделирование с использованием фреймворка данных Pandas
Я создал простую модель DCF, в основном с помощью Pandas. По сути, все вычисления происходят в одном кадре данных. Я хочу найти лучший стиль кодирования, поскольку модель становится более сложной и в нее добавляется больше переменных. Следующий пример может проиллюстрировать мой текущий стиль программирования — простой и понятный.
# несколько настраиваемых формул защита GrowthRate(): защита BoundedVal() .... # некоторые операции df['EBIT'] = df['выручка'] - df['затраты'] df['NI'] = df['EBIT'] - df['налог'] - df['проценты'] df['маржа'] = df['NI'] / df['доход'] Я просматриваю все годы, чтобы рассчитать значения. Теперь я добавил в модель более 500 переменных, и расчеты также усложнились. Я думал создать отдельное определение для каждой переменной и соответствующим образом обновить основной df. Таким образом, приведенный выше код будет выглядеть так:
def EBIT(t): df['EBIT'][t] = df['выручка'][t] - df['затраты'][t] #....еще несколько операций вернуть df['EBIT'][t] защита NI(t): df['NI'][t] = EBIT(t) - df['tax'][t] - df['interests'][t] #....еще несколько операций вернуть df['NI'][t] маржа защиты (т): если check_df_is_nan(): df['маржа'][t] = NI(t) - df['затраты'][t] #....еще несколько операций вернуть df['маржа'][т] еще: вернуть df['маржа'][т] Каждая функция способна 1) вычислять результаты и обновлять df 2) возвращать значение, если она вызывается другими функциями.
Чтобы избежать избыточных вычислений (например, если Margin(t) вызывается несколько раз), было бы лучше добавить функцию «проверить, было ли val рассчитано ранее» в каждое определение.
Мой вопрос: 1) можно ли добавить оператор if в группу определений? аналогично предложению if выше. 2) У меня более 50 пользовательских настроек, поэтому основной файл становится слишком длинным. Я не могу просто переместить все определения в другой файл и импортировать все, потому что некоторые определения также ссылаются на фрейм данных в основном файле. Какие-либо предложения? Могу ли я установить df как глобальную переменную, чтобы можно было изменять и обновлять определения из других файлов?
Я создал простую модель DCF, в основном с помощью Pandas. По сути, все вычисления происходят в одном кадре данных. Я хочу найти лучший стиль кодирования, поскольку модель становится более сложной и в нее добавляется больше переменных. Следующий пример может проиллюстрировать мой текущий стиль программирования — простой и понятный.
# несколько настраиваемых формул защита GrowthRate(): защита BoundedVal() .... # некоторые операции df['EBIT'] = df['выручка'] - df['затраты'] df['NI'] = df['EBIT'] - df['налог'] - df['проценты'] df['маржа'] = df['NI'] / df['доход'] Я просматриваю все годы, чтобы рассчитать значения. Теперь я добавил в модель более 500 переменных, и расчеты также усложнились. Я думал создать отдельное определение для каждой переменной и соответствующим образом обновить основной df. Таким образом, приведенный выше код будет выглядеть так:
def EBIT(t): df['EBIT'][t] = df['выручка'][t] - df['затраты'][t] #....еще несколько операций вернуть df['EBIT'][t] защита NI(t): df['NI'][t] = EBIT(t) - df['tax'][t] - df['interests'][t] #....еще несколько операций вернуть df['NI'][t] маржа защиты (т): если check_df_is_nan(): df['маржа'][t] = NI(t) - df['затраты'][t] #....еще несколько операций вернуть df['маржа'][т] еще: вернуть df['маржа'][т] Каждая функция способна 1) вычислять результаты и обновлять df 2) возвращать значение, если она вызывается другими функциями.
Чтобы избежать избыточных вычислений (например, если Margin(t) вызывается несколько раз), было бы лучше добавить функцию «проверить, было ли val рассчитано ранее» в каждое определение.
Мой вопрос: 1) можно ли добавить оператор if в группу определений? аналогично предложению if выше. 2) У меня более 50 пользовательских настроек, поэтому основной файл становится слишком длинным. Я не могу просто переместить все определения в другой файл и импортировать все, потому что некоторые определения также ссылаются на фрейм данных в основном файле. Какие-либо предложения? Могу ли я установить df как глобальную переменную, чтобы можно было изменять и обновлять определения из других файлов?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Финансовый анализ и финансовое моделирование с помощью таблиц данных Python Input CSV
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Финансовое дисконтирование с использованием подхода векторизации Python
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Финансовое дисконтирование с использованием подхода векторизации Python
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Финансовое дисконтирование с использованием подхода векторизации Python
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-