Python для анализа данных: как и зачем его использовать?
После запуска нового курса «Python для анализа данных» нам стали часто задавать вопрос: «Зачем вообще нужен Python, если есть Excel?».
Excel является самым популярным программным обеспечением для баз данных, хотя сегодня доступно множество альтернативных и более эффективных решений. Пять лет назад у Excel было более 750 миллионов пользователей. Население Земли на тот момент — примерно 7,6 миллиарда человека. Таким образом, около 10% людей пользовались Excel, можно предположить, что основная задача — анализ данных.
Excel являлся востребованным инструментом для многих компаний, его используют ученые и аналитики данных, однако для большей части их работы есть более эффективный софт — Python. И я вам это докажу.
Если вы еще не начали изучать Python и не вывели свои скилы по визуализации и анализу данных на новый уровень, я расскажу вам о пяти причинах, по которым вам необходимо начать изучать его прямо сейчас. Не сомневаюсь, что к концу статьи вы точно захотите перенести большую часть своей работы из Excel в Python.
Автоматизация и масштаб
В вопросе автоматизации Python становится действительно удивительным языком программирования. Вы сможете решить следующие задачи:
- подключить Python к любому источнику данных;
- составлять отчеты;
- запланировать задание, повторно извлекающее ваши данные с любыми обновлениями;
- выполнять необходимые расчеты;
- создавать динамическую панель мониторинга.
Python поможет вам сэкономить массу времени. Excel, напротив, требует слишком большого количества ручного труда, а также в нем не доступны автоматические обновления [комментарий HOCK Training: возможно, здесь речь идет о сложности обновлений данных стандартными инструментами Excel. Периодические обновления в Excel легко можно выполнять при помощи VBA (макросами)].
Python способен напрямую подключаться к вашей базе данных для проведения автоматических обновлений. Изображение: NobleDesktop.
Excel подходит для выполнения быстрого специального анализа небольших данных, однако, когда вы решите перейти к более крупному масштабу, он не будет работать. Общее количество строк на странице Excel — до 1 048 576, столбцов — до 16 384. Python же масштабируется до любых размеров и ограничен только памятью вашего устройства, а также для него доступно множество инструментов, которые поддерживают вычисления за ее пределами.
Пример — библиотека Dask. Она позволяет масштабировать вычисления не только на ПК, но и для запуска на кластере. Для тех, кто знаком с Pandas, это похожий код для чтения в CSV:
Это только строчка кода, однако благодаря ней вы сможете читать данные, чей объем намного больше объема памяти вашего компьютера. Я бы с удовольствием показал, как сделать то же самое в Excel, если бы это было возможно.
Если этот код показался вам сложным, начните учиться с помощью нашего курса. В нем есть все необходимое для начала работы с Python.
Python также масштабируется для нескольких источников данных. Excel — это хранилище и в то же время — механизм вычислений. Python же абсолютно не зависит от данных. Если вы нашли метод чтения имеющихся данных в Python, это значит, что вы сможете работать с ними. В Python есть множество библиотек, поэтому процесс считывания данных из целого ряда источников (например — базы данных CSV, Excel, JSON и SQL) является обычным.
Воспроизводимость
Воспроизводимость является концепцией, согласно которой любые созданные вами аналитические данные и визуализации могут быть без проблем воспроизведены кем-нибудь еще. Важны обе составляющие процесса:
Конечный результат. Кто-то другой должен суметь повторно запустить ваш процесс, чтобы получить такой же результат.
Путь достижения цели. Кто-то другой должен суметь пройти через ваши шаги. Только так можно обеспечить точность результата.
Важность этой концепции обусловлена тем, что она позволяет полагаться на автоматические процессы. Автоматизация полезна, когда работает правильно. Если же она неверна, автоматические отчеты могут стать настоящим кошмаром.
В Excel воспроизводимость крайне сложна. Результаты вычислений в ячейках практически не поддаются проверке при любом масштабировании. Типы данных очень запутаны. Картина, которую видит пользователь, часто не соответствует необработанным данным. VBA лишь делает воспроизводимость чуть лучше, поэтому вам гораздо выгоднее инвестировать в освоение Python.
Давайте обратимся к этому Excel-документу:
Нам известно, что столбец Sum — это сумма значений из колонок a и b, как нам подтвердить это? Можно проверить любую формулу, чтобы убедиться, что перед нами действительно сумма. Однако каждая ячейка может содержать отдельную формулу, что будет, если все они неверны? Если бы я не обратил ваше внимание на шестую строку, вы бы заметили что в ней другая формула?
Но в Python ваша сумма будет выглядеть так:
Простой и понятный код с легкостью подтверждает, что сумма всегда будет рассчитываться верно.
Python открывает доступ ко всем инструментам, необходимым для улучшения воспроизводимости и совместной работы разработчиков программного обеспечения. Python позволяет анализировать данные в облаке, мгновенно повторяя процесс, поэтому он лучше всего подходит для подключения к данным.
В сообществе Python широко распространены:
В Python 3 есть функция статической типизации, облегчающая чтение кода. Такие инструменты упрощают правильное написание кода. Если в дальнейшем его будет использовать кто-то другой, ему будет легко воспроизвести и понять каждую строку.
Бесконечные возможности
Если пользователь умеет работать в Excel, эти навыки полезны, но больше их нигде нельзя применить. Пожалуй, в этом заключается существенное отличие и главный плюс Python. Это удобный инструмент для анализа и визуализации данных, он также является надежным языком программирования, подходящим для других целей.
- заняться машинным или глубоким обучением;
- создать сайт;
- настроить автоматизацию системы умного дома и многое другое.
Python больше похож на другие языки программирования, с которыми вы можете столкнуться, чем Excel. Это значительно упрощает их изучение. Python более перспективен, чем Excel.
Спрос на специалистов, владеющих Python, очень высок. Согласно StackOverflow, в 2019 году этот язык программирования — четвертый по уровню популярности в мире среди разработчиков ПО. По информации Indeed от 2020 года, в США средняя годовая заработная плата разработчиков Python — 120 000 долларов.
Широкие возможности
Одно из преимуществ Excel — большое число встроенных формул, но возможности Python намного шире. В Python доступно множество библиотек, которые значительно упрощают расширенную статистику и аналитику. Визуализация выведена на новый уровень. При помощи Matplotlib, Seaborn, Plotly, Streamlit можно создавать:
Scikit-learn помогает обучать алгоритмы машинного обучения: машины повышения градиента, деоевья решений и т. д. Scipy и Numpy полезны для векторных и научных вычислений, а также для линейной алгебры. Xkcd отлично выразил мои мысли:
Легкость обучения Python
У Python при сравнении с Excel намного больше возможностей, но значит ли это, что его трудно освоить? К счастью, нет! Это Java-версия Hello World самой простой программы:
Python — это буквально одна строка: print(“Hello World!”) . Что может быть проще? Python входит в группу самых простых языков программирования. Также у него одно из самых активных сообществ, особенно — в сфере аналитики данных.
Язык программирования Python можно понять интуитивно. Его легко освоит даже человек с минимальным опытом работы в области программирования. Кому-то кривая обучения Excel, возможно, кажется более предпочтительной, но от нее намного меньше отдачи. Обучение Python стоит затраченного времени и приложенных усилий, а его универсальный дизайн оставляет Excel далеко позади.
Простой в использовании, Python имеет большое сообщество поддержки. Обучение никогда не было более простым.
Итоги
Время перейти на Python настало. Хватит придумывать оправдания! Я надеюсь, что в статье мне удалось показать вам плюсы изучения Python и помочь обойти некоторые препятствия на пути к обучению.
Учитесь и развивайте свои навыки владения Python!
Автоматизация на полную катушку: зачем аналитику кодить на Python?
Работа аналитики связана с множественными системами и программами, сбором данных и их дальнейшим анализом. Это занимает много времени, так как от полноты полученных сведений зависит правильность принимаемых решений. Поэтому современные специалисты создают для себя специальные скрипты, автоматизирующие рутинные операции.
Когда начинающий аналитик «приходит» к этому, возникает вопрос: какой язык программирования учить, чтобы повысить эффективность работы? Популярный вариант в этой среде — Python. И в этой статье мы решили разобраться, почему аналитики выбирают именно его.
По некоторым данным сегодня существует больше 8 тысяч языков программирования (ЯП). Регулярно появляются новые или улучшенные версии старых. Например, у BASIC есть более трехста диалектов. У вас в голове может возникнуть вопрос, зачем нужно так много языков программирования, неужели нельзя сделать один универсальный.
ЯП разрабатывают для достижения разных целей и решения определенных задач. Их классифицируют по сложности, мощности, скорости обработки компилятором и другим характеристикам.
Первым языком программирования считают C. Он появился в 1972 году и с того момента неизменно остается лидером рейтингов самых популярных ЯП. Разработчики делают выбор в пользу него из-за простого синтаксиса и, как следствие, легкой и быстрой компиляции процессором в машинный код. Это обеспечивает высокую скорость работы команд.
Есть у него и существенный минус — сложность чтения. В современных языках программирования используется максимум буквенных и словесных обозначений, а в С преобладают символы.
Развитие ЯП следует вслед за технологическим прогрессом. Когда компьютеры и программное обеспечение стали сложнее, разработчики начали понимать: им чего-то не хватает для более эффективной работы — новых библиотек, формул и автоматизации. Это привело к появлению С++ и С#. Они отличаются большим функционалом, который автоматизирует выполнение рутинных задач.
Количество библиотек и функций (готовых решений) в языке программирования очень важно. Чем их больше, тем проще работа программиста. Это как, например, готовые шаблоны интерфейсов для мобильных приложений: выбираешь понравившийся и адаптируешь под конкретные цели и задачи.
Современные языки программирования регулярно обновляются, но по-разному. Например, какой-то получает больше фишек для решения задач по web-разработке, а другой — для системных решений.
В среде программистов очень популярен Git — распределенная система управления версиями. Туда разработчики выкладывают свои уникальные решения для разных языков программирования. И любой может скачать их для собственного использования.
В общем, выбор ЯП для аналитика — непростая задача. А если сделать неправильный выбор, то потеряете много времени. Поэтому далее поговорим о том, чем руководствоваться при выборе языка программирования и какому отдают предпочтение опытные аналитики.
Выбирайте язык программирования, исходя из основной квалификации. Если по ней вы — программист, ограничений нет, для вас не будет проблемой разобраться в любом синтаксисе. Во всех остальных случаях (например, вы аналитик, но по работе приходится работать с языками программирования) выбирайте простой язык, на освоение основных команд которого уйдет немного времени.
Еще один критерий — возможность с помощью выбранного языка программирования решать основные отраслевые задачи. Сюда же относится современность, то есть насколько часто он обновляется. Не рассматривайте языки, в которых последнее нововведение было несколько лет назад. Скорее всего, они уже с трудом решают текущие задачи, а спустя некоторое время и вовсе будут неспособны это делать.
Некоторые специалисты советуют обращать внимание на скорость выполнения команд выбранным языком программирования, но на самом деле это не имеет решающего значения. В действительности скорость во многом зависит от технических характеристик используемого оборудования. Так что в этом плане себя не ограничивайте, для аналитики подойдет язык с любой скоростью работы.
Да, многие опытные аналитики делают выбор в пользу Python. Data Science-специалисты в большинстве своем — математики, а не программисты. Поэтому им для работы необходим простой, но в тоже время функциональный язык. В этой сфере он имеет множество сильных сторон. Далее поговорим об основных из них.
У Python простой синтаксис. Это позволяет писать код быстрее, чем на других языках программирования (например, на Java или C). Причем код на Питоне получается читабельным и легко интерпретируемым. Вот так выглядит расчет факториала на Java: