7 советов по Python, которые помогут вам в анализе данных

Python анализ данных

Из TowardsDataScience, автор: Питер Ниструп, составлено сердцем машины, участие: Король Демонов.

В этой статье перечислены некоторые советы по улучшению или ускорению вашей повседневной работы по анализу данных, в том числе:

1. Pandas Profiling

2. Нанесите данные Pandas с помощью Cufflinks и Plotly

3. Волшебные команды IPython

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

5. Ярлыки Jupyter

6. Сделайте так, чтобы ячейка имела несколько выходов одновременно в Jupyter (или IPython)

7. Мгновенно создавайте слайд-шоу для Jupyter Notebooks

1. Pandas Profiling

Инструмент работает хорошо. На следующем рисунке показан результат вызова простого метода df.profile_report():

Чтобы использовать этот инструмент, просто установите и импортируйте пакет Pandas Profiling.

Этот инструмент подробно не рассматривается в этой статье, чтобы узнать больше, прочитайте: https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d

2. Нанесите данные Pandas с помощью Cufflinks и Plotly

«Опытные» специалисты по данным или аналитики данных в основном знакомы с matplotlib и pandas. То есть вы можете быстро построить простой pd.DataFrame или pd.Series, просто вызвав метод .plot():

Немного скучно?

Это здорово, но можно ли нарисовать интерактивную, масштабируемую, расширяемую панораму? Запонкам ** пора выходить! (Cufflinks — это еще одна оболочка, основанная на Plotly.)

Чтобы установить Cufflinks в вашей среде, просто запустите !pip install cufflinks --upgrade в терминале. Посмотрите на изображение ниже:

Эффект намного лучше!

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

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

Друзья, которым нужно много работать с визуализацией данных, могут прочитать документацию Cufflinks и Plotly, чтобы узнать о других методах.
  • Документация по запонкам: https://plot.ly/ipython-notebooks/cufflinks/

  • Сюжетная документация: https://plot.ly/

3. Волшебные команды IPython

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

%lsmagic:найти все команды

Если вы помните только одну волшебную команду, то это должна быть именно эта. Выполнение команды %lsmagic предоставит список всех доступных магических команд:

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

Это, наверное, волшебная команда, которую я использую чаще всего.

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

Но не больше. Когда вы сталкиваетесь с проблемой, просто выполните команду %debug, чтобы выполнить любую часть кода, которую вы хотите запустить:

Что происходит на картинке выше?

  1. У нас есть функция, которая принимает список в качестве входных данных и возводит в квадрат все четные числа.

  2. Мы запускаем функцию, но что-то идет не так. Но мы не знаем, что происходит!

  3. Используйте команду %debug для этой функции.

  4. Пусть отладчик сообщает нам значение x и type(x).

  5. Проблема очевидна: мы ввели в функцию '6' как строку!

Это полезно для более сложных функций.

%хранить:Передача переменных между блокнотами

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

  • %store [переменная] Сохранить переменную.

  • %store -r [переменная] Чтение/получение переменных хранилища.

%ВОЗ:Перечислите все глобальные переменные.

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

%%время:магическая команда на время

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

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

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

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

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

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

синий, мода:

<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

Чтобы изучить и выучить сочетания клавиш, можно использовать Палитру команд: Ctrl+Shift+P для получения списка всех функций блокнота. Вот некоторые из самых основных команд:

  • Esc: войти в командный режим. В командном режиме вы можете использовать клавиши со стрелками для навигации по записной книжке.

В командном режиме:
  • A и B: вставьте новую ячейку выше (выше) или ниже (ниже) текущей ячейки.

  • M: текущая ячейка переходит в состояние Markdown.

  • Y: Текущая ячейка переводится в кодовое состояние.

  • D, D: удалить текущую ячейку.

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

В режиме редактирования:
  • Shift + Tab: предоставляет строку документации (документацию) для объекта, который вы вводите в текущую ячейку.Используйте это сочетание клавиш постоянно, чтобы переключаться между режимами документа.

  • Ctrl + Shift + -: разделить текущую ячейку в позиции курсора.

  • Esc + F: найти и заменить код (исключая вывод).

  • Esc + O: переключить вывод ячейки.

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

  • Shift + Down и Shift + Up: выберите ячейки ниже или выше.

  • Shift + M: объединить выбранные ячейки.

Обратите внимание, что после выбора нескольких ячеек вы можете выполнять операции удаления/копирования/вырезания/вставки/запуска в пакетном режиме.

6. Сделайте так, чтобы ячейка имела несколько выходов одновременно в Jupyter (или IPython)

Вы когда-нибудь хотели показать .head() и .tail() кадра данных pandas, но должны были отказаться на полпути от громоздкого создания дополнительной единицы кода для запуска метода .tail()? Теперь не бойтесь, вы можете отобразить желаемый результат с помощью следующей строки кода:
from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"
На следующем рисунке показан результат нескольких выходов:

7. Мгновенно создавайте слайд-шоу для Jupyter Notebooks

С помощью RISE вы можете мгновенно превратить блокнот Jupyter в слайд-шоу всего одним нажатием клавиши. А когда блокнот все еще активен, вы можете выполнять кодирование в режиме реального времени, представляя свои слайды!

Чтобы использовать этот инструмент, вам просто нужно установить RISE через conda или pip.
conda install -c conda-forge rise
или
pip install RISE

Теперь вы можете нажать новую кнопку, чтобы создать красивые слайды для вашего блокнота: