Сделать анализ данных Python быстрее и лучше – мечта каждого разработчика. Вот наглядные примеры: узнайте, как добавить чуточку магии в код.
В этой статье собраны лучшие советы и приёмы. Некоторые из них распространённые, а некоторые новые, но обязательно пригодятся в будущем.
1. Профилирование pandas DataFrame
Профилирование – процесс, который помогает понять наши данные, а Pandas Profiling – Python библиотека, которая делает это. Простой и быстрый способ выполнить предварительный анализ данных Python Pandas DataFrame .
Функции pandas df.describe() и df.info() , как правило, становятся первым шагом в автоматизации проектирования электронных устройств. Но это даёт лишь базовое представление о данных и мало помогает при больших наборах. Зато функция Pandas Profiling отображает много информации с помощью одной строки кода и в интерактивном HTML-отчёте.
Для представленного набора данных пакет Pandas Profiling вычисляет следующую статистику:
Вычисление статистики в пакете Pandas Profiling
Анализ данных Python: установка
Применение
Используем испытанный временем набор данных Титаника, чтобы продемонстрировать потенциал универсального профилировщика языка программирования Python:
Эта единственная строка кода – всё, что нужно для отображения отчёта о профилировании данных в Jupyter Notebook. Отчёт подробный, включает графики, где это требуется.
Отчёт также экспортируем в интерактивный HTML-файл с помощью следующего кода:
2. Привнесите интерактивность в графики Pandas
В Pandas встроена функция .plot() как часть класса DataFrame . Однако визуализации, которые представляются с помощью этой функции, не интерактивные, что снижает привлекательность. Напротив, нельзя исключать лёгкость построения графиков с использованием функции pandas.DataFrame.plot() .
Что, если бы мы создавали интерактивные графики, как диаграммы с pandas без внесения больших изменений в код? К слову, это делается с помощью библиотеки Cufflinks.
Библиотека Cufflinks связывает силу plotly с гибкостью pandas для лёгкого построения графиков. Теперь посмотрим, как установить библиотеку и заставить работать в pandas .
Установка
Использование
Время увидеть магию, разворачивающуюся с набором данных Титаника.
df.iplot() против df.plot()
Визуализация снизу показывает статическую диаграмму, в то время как верхняя диаграмма – интерактивная и более подробная. И это без серьёзных изменений в синтаксисе.
3. Добавление Магии в анализ данных Python
Магические команды (magics) – набор удобных функций в Jupyter Notebook, которые предназначены для решения распространённых проблем анализа данных. Посмотрите доступные magics с помощью %lsmagic .
Список доступных магических функций
Магические команды делятся на два вида:
- линейные magics, которые начинаются с одного символа % и работают с одной строкой ввода;
- ячеечные magics, связанные с двойным префиксом %% и работающие с несколькими строками ввода.
Магические функции вызываются без ввода начального % , если установлено значение 1. Вот из них, которые пригодятся в общих задачах анализа данных:
- %pastebin
%pastebin загружает код в Pastebin и возвращает URL. Pastebin – онлайн-хостинг, где сохраняем простой текст, такой как фрагменты исходного кода, а затем предоставляем URL-адрес другим пользователям. На самом деле, Github Gist также похож на Pastebin, хотя и с контролем версий.
Python-скрипт file.py с таким содержимым:
Использование %pastebin в Jupyter Notebook генерирует URL-адрес pastebin.
- %matplotlib notebook
Функция %matplotlib inline используется для визуализации статических графиков matplotlib в блокноте Jupyter Notebook. Замените inline на notebook , чтобы легко получить масштабирование и изменение размеров графиков. Убедитесь, что функция вызывается перед импортом библиотеки matplotlib .
- %run
Функция %run запускает Python-скрипт внутри Notebook.
- %%writefile
%%writefile записывает содержимое ячейки в файл. Здесь код будет записан в файл с именем foo.py и сохранён в текущем каталоге.
- %%latex
Функция %%latex превращает содержимое ячейки в LaTeX. Это полезно для написания математических формул и уравнений в ячейке.
4. Поиск и устранение ошибок
Интерактивный отладчик также относится к магическим функциям, но программист Python выделил для него отдельную категорию. Если получаете исключение при выполнении ячейки кода, введите %debug в новой строке и запустите. Это открывает интерактивную среду отладки, которая приводит к месту, где произошло исключение. Также здесь проверяем значения переменных, которые задали в программе, и выполняем операции. Для выхода из отладчика нажмите q .
5. Отображение тоже будет симпатичным
Хотите создать эстетически приятное представление структур данных? Модуль pprint – ваша палочка-выручалочка. В особенности полезен при отображении словарей или данных JSON. Смотрите пример, где используются print и pprint для печати вывода:
6. Анализ данных Python с выделением заметок
Используйте окна предупреждений или заметок в Jupyter Notebook, чтобы выделить важное. Цвет заметки зависит от типа оповещения. Добавьте один или все представленные блоки кода в ячейку, которую хотите выделить.
- Голубое окно: информация
- Жёлтое окно: предупреждение
- Зелёное окно: успех
- Красное окно: опасность
7. Печать всех выходных данных ячейки
Посмотрите на ячейку Jupyter Notebook, которая содержит следующие строки кода:
Это нормальное свойство ячейки, когда печатается только последний вывод, а для остальных добавляем функцию print() . Что же, получается, чтобы напечатать все выходные данные, добавьте следующий фрагмент вверху Notebook.
Теперь все выходные данные печатаются друг за другом.
Чтобы вернуться к исходным настройкам:
8. Запуск скриптов Python с опцией «i»
Типичный способ запуска скрипта Python из командной строки: python hello.py . Однако, если добавите дополнительный -i при запуске того же скрипта, например, python -i hello.py , это даст больше преимуществ. Посмотрим каких.
- Во-первых, после достижения конца программы Python не завершает работу интерпретатора. Таким образом, доступна проверка значений переменных и правильности функций, которые определены в нашей программе.
- Во-вторых, легко вызвать отладчик Python, так как мы до сих пор в интерпретаторе:
Это приведёт нас к месту, где произошло исключение, и позволит дальше работать c кодом.
9. Автоматическое комментирование кода
Ctrl/Cmd + / автоматически закомментирует выделенные строки в ячейке. Повторное нажатие комбинации раскомментирует ту же строку кода.
10. Чуть божественного в анализ данных Python – восстановление
Вы когда-нибудь случайно удаляли ячейку в Jupyter Notebook? Если да, то здесь доступно сокращение, которое отменяет действие удаления.
- В случае, если удалили содержимое ячейки, вы можете легко восстановить его, нажав CTRL/CMD+Z
- Для восстановления полностью удалённой ячейки нажмите ESC+Z или EDIT > Undo Delete Cells
Заключение
Эта статья вобрала базовые советы, которые облегчат программирование на Python и работу с Jupyter Notebook. Уверены, что эти фишки будут вам полезны. Удачного Кодинга!