7 советов по улучшению анализа данных в Python


#1: Pandas Profiling

Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():

С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет Pandas Profiling.

#2: Построение графиков данных Pandas с помощью Cufflinks и Plotly

Многие из нас хорошо знакомы с интеграцией matplotlib и pandas, особенно с возможностью быстро создавать графики pd.DataFrame или pd.Series с помощью простого вызова метода .plot():

Скучно, не правда ли?

А как насчет интерактивного и масштабируемого графика? Cufflinks спешит на помощь!

Для установки Cufflinks в своем окружении просто запустите ! pip install cufflinks --upgrade и любимый терминал, и вы готовы к работе!

Намного лучше!

Обратите внимание, что единственное изменение — это импорт и установка cf.go_offline() для Cufflinks. Более того, мы лишь изменили метод .plot() на .iplot().

Другие методы, такие как .scatter_matrix(), также могут создавать действительно хорошую визуализацию:

Очень круто!

Тем, кто работает с большим количеством визуализации данных, я рекомендую взглянуть на документацию Cufflinks и Plotly, в которой можно найти больше интересных методов!

#3: Magic-команды IPython

«Волшебство» в IPython представлено серией улучшений, размещенных поверх стандартного синтаксиса Python. Magic-команды бывают двух типов: линейная магия, которая обозначается префиксом % и действует на одной строке ввода, и клеточная магия, обозначаемая двойным префиксом %% и работающая с несколькими строками ввода. Ниже приведены некоторые из полезных функций этих команд:

%lsmagic: найдем их всех!

Почему бы не начать со старого доброго принципа «помоги себе сам»? Команда %lsmagic предоставляет полный список всех доступных Magic-команд:

%debug: интерактивная отладка

Многие из нас сталкивались с подобной ситуацией: выполняемый блок кода постоянно выдает ошибку, и чтобы все исправить, приходится написать 20 операторов print() для вывода содержимого каждой переменной. Затем, решив проблемы, вам приходится возвращаться и удалять все функции печати.

Больше этого делать не нужно! Просто запустите команду %debug после возникновения проблемы и выполните любую часть кода:

Что здесь происходит?

  • Функция принимает список в качестве входных данных и возводит в квадрат все четные числа.
  • Мы запускаем функцию, но что-то идет не так!
  • Мы используем команду %debug для перехода к моменту поломки функции.
  • Мы просим отладчик сообщить значение x и type(x).
  • Ошибка очевидна. '6' передается как строка!
  • %store: передача переменных между notebooks

    Допустим, вы потратили некоторое время на очистку данных в notebook и теперь хотите протестировать некоторые функции в другом notebook. Соответственно вам нужно либо реализовать эту функцию в том же notebook, либо сохранить данные и загрузить их в другой notebook. Но только не при использовании %store! Просто сохраните переменную и извлеките ее в любой notebook:

    %store [variable] сохраняет переменную.%store -r [variable] читает/извлекает сохраненную переменную.

    %who: перечисление всех переменных глобальной области видимости

    Случалось ли так, что вы присваивали какое-либо значение переменной, а затем забывали ее имя? А может, вы случайно удалили функцию ячеек, отвечающую за присвоение значения переменной? С помощью %who можно получить список всех глобально присвоенных переменных:

    %%time: тайминг с magic-командами.

    С помощью этой простой команды можно получить всю необходимую информацию о времени выполнения. Просто примените команду %%time к любому фрагменту выполняемого кода и вы получите следующий вывод:

    %%writefile: запись содержимого ячейки в файл

    С помощью этой команды можно сохранить сложную функцию или класс, которые записаны в notebook, в отдельном файле. Просто добавьте в ячейку функции или класса команду %%writefile, а затем имя файла:

    Как видите, созданная функция сохранена в файле «utils.py» и теперь ее можно импортировать любым удобным способом.

    #4: Форматирование в Jupyter

    Jupyter предоставляет возможность форматирования HTML/CSS в ячейках markdown. Варианты, которые я использую чаще всего:

    Синий:

    <div class="alert alert-block alert-info"> This is <b>fancy</b>! </div>

    Красный:

    <div class="alert alert-block alert-danger"> This is <b>baaaaad</b>! </div>

    Зеленый:

    <div class="alert alert-block alert-success"> This is <b>gooood</b>! </div>

    Рассмотрим их в действии:

    Это очень удобная функция для предоставления результатов в Notebook!

    #5: Горячие клавиши Jupyter

    Рассмотрим самые основные команды:

    Esc: используется для входа в командный режим, в котором можно перемещаться по notebook с помощью клавиш со стрелками.

    Командный режим:

    • A и B: вставляет новую ячейку [A] (выше) или [B] (ниже) текущей ячейки.
    • M: изменяет текущую ячейку на [M]arkdown.
    • Y: изменяет текущую ячейку на код.
    • D,D: удаляет текущую ячейку.

    Enter: возвращает в режим редактирования для текущей ячейки.

    Режим редактирования:

    • Shift + Tab: отображает Docstring (документацию) для объекта, введенного в текущую ячейку. С помощью продолжительного нажатия на горячую клавишу можно переключаться между режимами документации.
    • Ctrl + Shift + -: разбивает текущую ячейку там, где находится курсор.
    • Esc + F: находит и заменяет исключенные выходные данные.
    • Esc + O: включает/отключает выходные данные ячейки.

    Выбор нескольких ячеек:

    • Shift + Down и Shift + Up: выбирает следующую ячейку в вертикальном или горизонтальном направлении.
    • Shift + M: объединяет выбранные ячейки.
    • Примечание: после выбора ячеек вы можете удалить/скопировать/вырезать/вставить/запустить их как пакет.

    #6: Несколько выводов в ячейку в Jupyter (или IPython)

    Хотели ли вы когда-нибудь отобразить .head() и .tail() DataFrame pandas, но сдавались на полпути из-за сложности создания дополнительной ячейки кода для запуска метода .tail()? Теперь можно отобразить все желаемые выходные данные с помощью следующих строк кода:

    from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

    Рассмотрим возможности нескольких выводов:

    Проще простого!

    #7: Мгновенное создание слайд-шоу из notebook

    С помощью RISE можно превратить Jupyter Notebook в слайд-шоу одним нажатием клавиши. Более того, вы можете писать код в режиме реального времени во время презентации! Взгляните:

    Источник: https://github.com/damianavila/RISE

    Чтобы использовать этот инструмент, просто установите RISE с помощью conda или pip в зависимости от окружения:

    conda install -c conda-forge rise /// ИЛИ /// pip install RISE

    Теперь вы сможете создавать красивые слайды из notebook простым нажатием на новую кнопку:


    Перевод статьи Peter Nistrup: 7 things to quickly improve your Data Analysis in Python


    Поделиться статьей:


    Вернуться к статьям

    Комментарии

      Ничего не найдено.