Панды Python делают анализ данных простым и мощным с помощью нескольких строк кода

  1. От увлечения к пониманию
  2. Установка: сложная часть
  3. Создание блокнота
  4. Используя панд
  5. Ярлыки для анализа данных и визуализации
  6. Три строки кода = панды + электронная таблица + график
Ярлык через деревья (источник: Рональд Сондерс через Flickr )

За свою карьеру я обучил сотни разработчиков на Python и науке о данных. Широкое обобщение, которое я видел, состоит в том, что лагерь Python разделен примерно на три группы: веб, научные и ops.

Я видел, как многие разработчики Python (веб-разработчики или DevOps-типы) избегали касаться «числового» стека Python - NumPy, Jupyter, pandas и тому подобного. Это может быть связано с моим предвзятым примером, или это может быть связано с традиционно более сложным путем установки таких библиотек (хотя Анаконда и его друзья удалили это оправдание). Или, возможно, это происходит из-за того, что числовой набор основан на более академических технических знаниях, а не на создании сайтов. Вероятно, этому не помогает тот факт, что большинство предложений работы «ученого-данных» делают MS или PhD требованием. Атмосфера может звучать как «держись подальше, если ты не готов к глубокой математике». Я не верю, что так обстоит дело с этими инструментами, и я намерен привести контрпример с панд библиотека анализа данных. Эти инструменты полезны и просты для любого программиста, которому необходимо выполнить анализ или иметь среду, подобную ноутбуку, для исследования данных.

Мой опыт обучения других привел меня к осознанию чего-то другого. Чтение о коде недостаточно. Если вы действительно хотите научиться чему-то, вам нужно это попробовать. Итак, я представляю три простые команды, чтобы вы начали продуктивно работать с пандами. Не просто читайте это. Попробуйте это. Вы можете найти инструмент, который сделает вашу жизнь проще.

Я был впечатлен срочностью выполнения. Знания недостаточно; мы должны подать заявку. Быть готовым недостаточно; мы должны сделать .

Леонардо да Винчи (акцент мой)

От увлечения к пониманию

У одного из моих детей, скажем так, навязчивое компульсивное поведение. В настоящее время он сосредоточен на изучении всех о периодической таблице. Он хочет знать каждый элемент, его номер, имя и использование. Он проверит книги из библиотеки об элементах, прочитает и перечитает их. Наверное, не ваше нормальное поведение, но эй, он с улицы.

До того, как он увлекся стихиями, он пережил период, когда был занят президентами. Мы видели такое же поведение:

  • Получить книги, обсуждающие нынешних и предыдущих лидеров свободного мира.
  • Читать их.
  • Перечитайте их.

Однажды я пришел домой, и он очень гордился созданным им творением. Мой сын прошел через всех президентов и подсчитал их политическую партию. Затем он тщательно составил круговую диаграмму результатов! Он сиял, когда показывал это мне.

Будучи вовлеченным во многие аспекты науки о данных (обучая других, а также сканируя данные, манипулируя ими, создавая прогностические модели и визуализируя их), я был действительно впечатлен моим сыном. По собственному желанию (это была даже не домашняя работа) он сделал хорошую визуализацию президентских партий (да, многие не считают круговые диаграммы правильными визуализациями, но мы проигнорируем это).

Я подумал, что это будет отличная возможность для одного из тех событий, связанных с отцом-сыном. Я мог бы поздравить его с его тяжелой работой, а затем показать ему, как я делаю некоторые из тех вещей, которые он делал для своей круговой диаграммы, используя компьютер. Мои дети знают, что я работаю с компьютером, но это было бы для него хорошим шансом увидеть, что я на самом деле делаю. И я бы познакомил его с некоторыми из тех же инструментов, что и те изворотливые ученые, которые сидят весь день, планируя, какую рекламу я нажимаю. А именно библиотека панд и Jupyter ,

Хорошая вещь в этом примере ниже, основанном на проекте, который я сделал с моим сыном, состоит в том, что не только ученик третьего класса может понять это, но и большинство тех, кто имеет некоторый опыт программирования, найдут его действительно прямым.

Установка: сложная часть

Установка, пожалуй, самая сложная часть использования панд или Jupyter. Если вы знакомы с инструментами Python, это не так уж сложно. Для остальных из вас, к счастью, есть мета-дистрибутивы Python, которые позаботятся о сложной части. Одним из примеров является анаконда Дистрибутив Python от Continuum Analytics, который можно использовать бесплатно, и, вероятно, с ним проще всего начать. (Это то, что я использую, когда я делаю корпоративное обучение).

После того, как вы установили Anaconda, у вас должен быть исполняемый файл с именем conda (вам нужно будет открыть командную строку в Windows). Инструмент conda работает на всех платформах. Чтобы установить pandas и Jupyter (мы добавим еще несколько библиотек, необходимых для примера), введите:

Конда установить панды Юпитер xlrd matplotlib

Это займет несколько секунд, но должно предоставить вам среду со всеми установленными библиотеками. После этого запустите:

jupyter, ноутбук

И у вас должен быть запущен ноутбук. В браузере появится список каталогов. Поздравь себя с тем, что ты прошел через самую сложную часть!

Создание блокнота

На веб-странице Jupyter нажмите кнопку « Создать» с правой стороны. Это вызовет выпадающий список. Нажмите Python в раскрывающемся меню, и теперь у вас будет собственный блокнот. Записная книжка представляет собой набор кода Python и уценка комментарий. Есть несколько вещей, которые вы должны знать, чтобы начать.

Во-первых, есть два режима:

  • Командный режим: где вы создаете ячейки, перемещаетесь по ячейкам, выполняете их и меняете их тип (от кода к уценке).
  • Режим редактирования: где вы можете изменить текст внутри ячейки, подобно легкому редактору. Вы также можете выполнить ячейки.

Вот основные командные команды, которые вы должны знать:

  • б: создать ячейку ниже.
  • dd: удалить эту ячейку (да, это два «d» подряд).
  • Стрелка вверх / вниз: переход к различным ячейкам.
  • Enter: перейти в режим редактирования в ячейке.

Вот команды редактирования, которые вы должны знать:

  • Control-Enter: Запустить ячейку.
  • Esc: перейти в командный режим.

Это действительно так. Есть еще команды (введите h в командном режиме, чтобы получить их список), но это то, что я использую в 90% случаев. Разве это не было легко?

Используя панд

Войдите в ячейку и введите (сначала создайте ячейку, набрав b , затем нажмите ввод, чтобы перейти в режим редактирования):

импортировать панд как pd

Введите control enter, чтобы запустить эту ячейку. Если вы установили pandas, это мало что даст, просто импортирует библиотеку. Затем он вернет вас в командный режим. Чтобы сделать что-нибудь интересное, нам нужны данные. Некоторое время спустя мы с сыном нашли в Интернете электронную таблицу Excel, в которой содержалась соответствующая информация о президентах: не ваш обычный файл CSV, но лучше, чем ничего. Нам повезло, потому что панды могут читать файлы Excel!

Создайте новую ячейку ниже и введите и выполните следующее:

df = pd.read_excel ('http://qrc.depaul.edu/Excel_Files/Presidents.xls')

Это может занять несколько секунд, так как необходимо извлечь электронную таблицу из URL-адреса, а затем обработать ее. Результатом будет переменная, df (сокращение от DataFrame), которая содержит табличные данные в этой электронной таблице.

Просто создав другую ячейку и добавив в нее следующее, мы можем воспользоваться аспектами REPL в Jupyter для просмотра данных. (Jupyter на самом деле представляет собой интересный Python REPL, Read Eval Print Loop.) Просто введите имя переменной, и Jupyter сделает неявную печать значения.

Чтобы проверить содержимое типа DataFrame и выполнить:

Д.Ф.

Это представит хорошую таблицу содержания HTML. По умолчанию он скрывает часть содержимого, если pandas считает, что его слишком много для показа.

Ярлыки для анализа данных и визуализации

DataFrame имеет различные столбцы, которые мы можем проверить. Моего сына особенно интересовала колонка «Политическая партия». Выполнение следующего позволит вам увидеть только этот столбец:

df ['Политическая партия']

Хорошая вещь о пандах в том, что она предоставляет ярлыки для общих операций, которые мы делаем с данными. Если мы хотим увидеть подсчет всех политических партий, нам просто нужно запустить эту команду, которая подсчитывает количество значений в столбце:

df ['Политическая партия']. value_counts ()

Довольно приятный, но даже лучше, pandas интегрирован с библиотекой графиков Matplotlib. Таким образом, мы можем создать эти милые маленькие круговые диаграммы. Вот команда, чтобы сделать это:

% matplotlib inline df ['Политическая партия']. value_counts (). plot (kind = "pie") Рисунок 1. Круговая диаграмма политической партии, созданная с помощью библиотеки графиков Matplotlib. Изображение предоставлено Мэттом Харрисоном.

Если вы знакомы с Python, но не Jupyter, вы не узнаете первую строку. Это нормально, потому что это не Python, а скорее «волшебство клетки» или директива, сообщающая Jupyter, что он должен вставлять графики в веб-страницу.

Я немного более неравнодушен к гистограмме, поскольку она позволяет легко увидеть разницу в значениях. На круговой диаграмме трудно определить, было ли больше президентов-республиканцев или демократов. Не проблема, опять же, это одна строка кода:

df ['Политическая партия']. value_counts (). plot (kind = "bar") Рисунок 2. Гистограмма от MatPlotlib позволяет легко увидеть разницу в значениях. Изображение предоставлено Мэттом Харрисоном.

Три строки кода = панды + электронная таблица + график

Вот и ты. Используя три строки кода (четыре, если мы посчитаем директиву Jupyter), мы можем загрузить библиотеку панд, прочитать электронную таблицу и построить график:

импортировать панд как pd df = pd.read_excel ('http://qrc.depaul.edu/Excel_Files/Presidents.xls')% matplotlib inline df ['Политическая партия']. value_counts (). plot (kind = "pie" )

Это не просто то, что могут использовать статистики или доктора наук. Jupyter и pandas - это инструменты, которые элементарные дети могут использовать. Если вы разработчик, вы должны потратить несколько минут на ознакомление с этими инструментами. Для развлечения попробуйте сделать некоторые сюжеты из столбцов «Колледж» и «Профессия». Вы увидите интересный путь будущих планов моего сына на его пути стать президентом! Продолжайте, это всего лишь две строки кода:

df ['College']. value_counts (). plot (kind = "bar") df ['Occupation']. value_counts (). plot (kind = "bar")Разве это не было легко?