machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Исследовательский анализ данных с помощью панд с использованием ноутбуков Jupyter

Дата публикации Aug 19, 2018

Красивая красная панда делает свое дело. Если вы посмотрите достаточно близко на этот бамбук, вы можете увидеть запятые. Источник:pixabay

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

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

Сегодня мы рассмотрим два потрясающих инструмента, внимательно следя за кодом, который я загрузил наэтот проект GitHub, Одним из них является Jupyter Notebooks, а другим - Python Framework, называемый Pandas.

Если вы новичок в Python, я рекомендую вам прочитать руководство по языку, прежде чем переходить к этому сообщению. Я не буду использовать что-то слишком неясное, но не остановлюсьобъяснить список пониманияили. Я рекомендую книгу О'Рейли «Наука о данных с нуля с Python”, Но любой другой учебник может подойти.

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

Просто представьте себе это, но менее округлое и немного более квадратное. Rectanglish? Это слово? Источник: Pixabay

Ноутбуки Jupyter - это та же среда на стероидах. Это похоже на запуск консоли Python для цикла read-eval-print, но с симпатичным интерфейсом и возможностью документировать и сохранять то, что вы тестировали. Например, это очень удобно, если вы пишете среднюю статью об инструментах Python!

Чтобы установить Jupyter, все, что вам нужно сделать, это запустить команду pip:

python -m pip install jupyter

Если вы работаете в Linux, вы должны использовать эту команду:

pip3 install --user jupyter

(Примечание: предыдущая версия этой статьи рекомендовала использовать sudo для установки. Aдобрый читательнаучил меня этомуне безопасно и на самом деле очень плохая практика, поскольку он дает программе sudo привилегии программы setup.py, что, как правило, бесполезно и позволяет запускать вредоносный код. Чем больше ты знаешь!)

Затем, чтобы запустить программу, откройте свой терминал в папке, где вы хотите хранить свои записные книжки, и просто запустите

jupyter notebook

Да, это так просто. Эта команда инициализирует сервер на вашем компьютере и перенаправит на него ваш любимый браузер. Оттуда просто используйте графический интерфейс для создания новой записной книжки и откройте ее. Использовать+кнопку, чтобы создать новый блок кода, и"резать"один, чтобы удалить один. Каждый блок кода можно запустить независимо (но не одновременно), наведя на него курсор и нажав«Shift + Enter».

Теперь, когда вы знаете, как запустить ноутбук Jupyter, было бы разумно клонировать и вытащитьпроектЯ только что связался. Все, что вам нужно сделать, это нажатьклонзеленую кнопку, получить ссылку и сделать

git clone *link*

Теперь самое интересное, давайте немного поговорим о пандах. Pandas - это платформа Python с открытым исходным кодом, поддерживаемая сообществом PyData. Он в основном используется для анализа и обработки данных, в основном для манипулирования файлами CSV.

Они продолжают делать их привлекательнее и привлекательнее. Как будто каждый волос - это коммит. Источник:pixabay

В случае, если вы не знаете, CSV - это просто формат для файлов, которые кодируют данные в Серии (столбцы), где каждый объект (строка) имеет значение. Каждая строка является строкой в ​​файле, и каждое значение отделяется от предыдущего запятой, таким образом, файл значений, разделенных запятыми. Первая строка зарезервирована для заголовка с именами для каждого столбца.

В этом уроке мы сначала создадим фиктивный набор данных «данные о сотрудниках» из очень холодной компании, в которой хранятся только имя, фамилия и зарплата каждого сотрудника. Набор данных будет создан в виде файла CSV, как показано наgenerate_people.pyпрограмма.

Сначала мы используем обычный Python для создания словарей, каждый из которых представляет человека. Если вы более знакомы с JavaScript, каждый словарь - это просто JSON с полями «имя», «фамилия» и «зарплата».

Затем мы генерируем Pandas Dataframe: их абстракцию над CSV-файлами, где каждый столбец представляет собой серию Pandas (итеративный с некоторыми векторизованными операциями).

Это оно. Как видите, Dataframe генерируется как список словарей и (необязательный) аргумент для имен столбцов. Экспортировать его в файл CSV так же просто, как вызватьto_csvметод, с именем файла в качестве единственного аргумента.

Теперь для чтения и обработки, давайте запустимАнализировать набор данныхЗаписная книжка, также присутствующая в хранилище. Я бы посоветовал вам открыть его и прочесть эту статью рядом с ним, но добавлю соответствующие фрагменты на случай, если вы находитесь на мобильном телефоне или просто чувствуете себя немного ленивым

Сначала мы импортируем файл CSV как Dataframe со строками:

import pandas as pd 

df = pd.read_csv("random_people.csv")

используя df.head (К) для некоторыхКпозволит нам увидеть первыйКлинии кадра данных, которые будут выглядеть довольно хорошо благодаря волшебству Jupyter. Это простой способ понять данные (и ваш основной инструмент отладки, когда вы начнете их обрабатывать).

Чтобы увидеть только одну из Серий, нам нужно лишь проиндексировать ее, как если бы это было словарное поле:

df[“*series name*”]

Вы можете вызывать любые обычные агрегаты, которые вы используете в любых других инструментах анализа данных, таких как SQL, в любой серии в качестве метода. Мой любимый, если я хочу получить интуицию о серии, этоvalue_countsметод, который отображает каждое значение и сколько раз оно появляется в Серии, упорядоченное по убыванию количества появлений. Другие варианты включаютозначать,сумма,подсчитыватьа такжемедиана.

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

Однако иногда вам захочется применить функцию к Серии, которая не так тривиальна, и, возможно, люди, которые сделали Панд, на самом деле не думали о вашем случае использования. В этом случае вы можете просто определить свою собственную функцию и использоватьподать заявлениеметод на серии, которую вы хотите изменить. Это будет немного медленнее, но все равно будет работать гладко для простых функций. Это эквивалент панды родного Pythonкарта, и добавит тонну гибкости к вашей обработке,

Если вы хотите отфильтровать свой Dataframe и сохранить только те строки, которые поддерживают определенное свойство, то вы будете делать следующее:

df_high = df[df["salary"]>=6000]

где«DF [„заработная плата“]> = 6000"может быть переключено чем-нибудь, что возвращает серию бул, или «df [«название любой серии»]. apply (етакой, чтоеэто булева функция Убедитесь, что в серии столько же элементов, сколько в фильтруемой серии.

И наконец, имейте в виду, что эти отфильтрованные кадры данных по умолчанию доступны только для чтения, поскольку они генерируются по ссылке. Если вы хотите изменить их, просто добавьте«.Loc»после имени информационного кадра, перед первой скобкой, например:

df_low= df.loc[df["salary"]<6000]

Вы также можете добавить имя столбца в качестве второго параметраLOCчтобы сохранить один отфильтрованный ряд вместо целого кадра данных. Это пример прямо из тетради.

df_low= df.loc[df["salary"]<6000,"salary"]

Обратите внимание, что последние являются срезами, сделанными по ссылке, поэтому любые изменения, которые вы вносите в них, будут также вноситься в исходный Dataframe. Чтобы избежать этого, просто позвонитекопияметод в конце строки.

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

Если вы хотите расширить это, вот статья, которую я написал накак сделать анализ данных параллельно,

Есть книга О'Рейли, которую я люблю, и я нашел ее очень полезной, когда начал свое путешествие по науке о данных. Это называетсяНаука о данных с нуля с Pythonи это, вероятно, половина причины, по которой я получил свою работу. Если вы читаете это далеко, вы можете наслаждаться этим!

P.S: следуйте за мной для получения дополнительных уроков, советов и подсказок по Python, и, пожалуйста,поддержать мое письмоесли вы нашли эту статью полезной.

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map