«For professions that have long relied on trawling through spreadsheets, Python is especially valuable. Citigroup, an American bank, has introduced a crash course in Python for its trainee analysts», — The Economist
В этой статье мы расскажем, какие возможности предоставляет Python в работе финансовых специалистов.
Цель этой статьи — помочь вам решить, действительно ли Python настолько сложный и запутанный и стоит ли добавить его в свой технический инструментарий. Если вы уже решили изучать Python, то рекомендуем начать с нашего открытого курса «Первый код на Python».
Рассмотрим на примере того, как Stefan Thelin, в прошлом инвестиционный банкир, а теперь – финансовый директор стартапа – использует Python в работе.
Введением в программирование у Стефана был BASIC на Oric 1 в середине 1980-х гг. Тогда BASIC был самым распространенным языком для начинающих. Другими языками, которыми он баловался с конца 80-х до середины 90-х, были Pascal и C, но они никогда не использовались в их профессиональной деятельности.
С момента первого знакомства с Python Стефан использовал его для широкого спектра задач, от небольших скриптов до более крупных проектов, как для личных целей, так и для профессиональных.
Многие имеют дело с электронными таблицами – базовым инструментом работы финансовых специалистов.
Вот несколько примеров отличного взаимодействия таблиц и Python:
1. Отслеживание сотен действий проектной команды в динамике в процессе сделок по слияниям и поглощениям (M&A)
Стефан работает со сделками M&A, отвечая не только за исполнение, но и за последующую интеграцию приобретенного актива в структуру компании-покупателя.
Не так давно команда приняла решение о гибридном подходе к управлению проектом, используя «водопад» и диаграммы Ганта для высокоуровневых планов для каждого из двенадцати рабочих потоков интеграции в дополнение к Канбан-доске, которая помогает отслеживать сотни событий, происходящих в любой момент времени, в рамках так называемого “плана первых 100 дней”.
Канбан-доска, MeisterTask, имеет ряд статистических и отчетных функций, но потребности команды вышли за рамки этого с точки зрения анализа и представления информации, что потребовало специального решения.
Ниже представлен рабочий процесс, который Стефан автоматизировал с помощью Python:
1. Сохранение статуса доски еженедельно в виде файла CSV.
2. Просмотр всех исторических CSV файлов в Pandas DataFrame.
3. Сортировка, фильтрация, группировка данных в согласованные форматы отслеживания прогресса (по статусу активности, рабочему процессу и т. д.).
4. Подготовка результатов в файл Excel с данными из каждого анализа, отформатированного таким образом, чтобы его можно было просто скопировать и вставить в think-cell таблицы.
5. Создание таблиц и диаграмм для пакета отчетов для ежемесячного заседания руководящего комитета.
Разработка сценария потребовала нескольких часов, но теперь обновление отчетов для заседаний руководящего комитета занимает несколько минут: буквально, около 30 секунд, чтобы перейти в нужную папку и запустить скрипт с помощью однострочной команды, а затем несколько минут, чтобы скопировать-вставить вывод в слайд.
Даже еженедельное отслеживание около 500 действий (карт) в двенадцати рабочих потоках в течение 12 месяцев исполнения без автоматизации – довольно сложная задача.
Проанализировав эффективность данного проекта по оптимизации, Стефан принял решение на первом этапе экспортировать данные в виде CSV-файлов. MeisterTask, как и многие современные веб-приложения, имеет API, который может быть подключен к приложению Python, но время, затраченное на его настройку, намного перевешивает экономию времени в рамках данного примера.
Зачастую, оптимальным решением является автоматизация только определенных шагов рабочего процесса.
2. Анализ статистики цен на жилье с помощью веб-скрапинга, Google Maps API и Excel
Второй пример – это личный проект Стефана, но также раскрывает полезные свойства Python.
Процесс выглядит так:
1. Залейте данные о списках объектов недвижимости, включая адрес, площадь, количество комнат, цену и пр., от нескольких сотен до, возможно, тысячи строк в общей сложности.
2. Сохраните данные.
3. Подключитесь к Google Maps API и для каждой позиции сформируйте расстояние между объектом и ключевыми достопримечательностями, такими как: море, центр города, ближайший железнодорожный вокзал, ближайший аэропорт и т. д.
4. Экспортируйте данные в Excel.
5. Используйте стандартные функции Excel для выполнения регрессий, расчета статистики и создания диаграмм по стандартным показателям, таким как: цена за квадратный метр и расстояние до ориентиров.
Результаты могут быть ранжированы в зависимости от ваших личных интересов и ограничений, например – максимального бюджета.
Это всего лишь два примера автоматизации работы электронных таблиц и добавления функций, но это далеко не все возможности Python!