Дружественное введение в анализ данных в Python

За прошедшие годы использование python для науки о данных невероятно выросло и продолжает расти с каждым днем..


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

Что такое анализ данных?

Анализ данных – это очистка и преобразование большого количества неструктурированных или неорганизованных данных с целью генерирования ключевой информации и информации об этих данных, которые помогут в принятии обоснованных решений..

Существуют различные инструменты, используемые для анализа данных, Python, Microsoft Excel, Tableau, SaS и т. Д., Но в этой статье мы сосредоточимся на том, как анализ данных выполняется в python. В частности, как это делается с библиотекой Python под названием Панды.

Что такое панды?

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

Структуры данных в Пандах

В Pandas есть 3 структуры данных, а именно:

  • Серии
  • DataFrame
  • панель

Лучший способ различить три из них – это видеть, что один содержит несколько стеков другого. Итак, DataFrame – это стек последовательностей, а Panel – это стек DataFrames..

Серия – это одномерный массив

Стек из нескольких серий составляет двухмерный DataFrame

Стек из нескольких DataFrames образует трехмерную панель

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

Анализ данных в Пандах

Для этой статьи установка не требуется. Мы будем использовать инструмент под названием colaboratory созданный Google. Это онлайновая среда Python для анализа данных, машинного обучения и искусственного интеллекта. Это просто облачный Jupyter Notebook, который поставляется с предустановленным почти каждым пакетом Python, который вам понадобится как специалист по данным.

Теперь идите к https://colab.research.google.com/notebooks/intro.ipynb. Вы должны увидеть ниже.

В левом верхнем углу, выберите опцию «Файл» и нажмите «Новая записная книжка». Вы увидите новую страницу ноутбука Jupyter, загруженную в ваш браузер. Первое, что нам нужно сделать, это импортировать панд в нашу рабочую среду. Мы можем сделать это, запустив следующий код;

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

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

Мы можем сделать это с помощью следующего кода в новой ячейке;

df = pd.read_csv (‘https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &токен = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

.Read_csv используется, когда мы хотим прочитать файл CSV, и мы передали свойство sep, чтобы показать, что файл CSV разделен запятыми.

Также следует отметить, что наш загруженный CSV-файл хранится в переменной df. .

Нам не нужно использовать функцию print () в Jupyter Notebook. Мы можем просто ввести имя переменной в нашей ячейке, и Jupyter Notebook распечатает его для нас.

Мы можем попробовать это, набрав df в новой ячейке и запустив ее, она распечатает все данные в нашем наборе данных в виде DataFrame для нас.

Но мы не всегда хотим видеть все данные, иногда мы просто хотим видеть первые несколько данных и имена их столбцов. Мы можем использовать функцию df.head () для печати первых пяти столбцов и df.tail () для печати последних пяти. Вывод любого из двух будет выглядеть как таковой;

Мы хотели бы проверить наличие связей между этими несколькими строками и столбцами данных. Функция .describe () делает именно это для нас.

 Запуск df.describe () дает следующий вывод;

Мы сразу видим, что .describe () дает среднее, стандартное отклонение, минимальное и максимальное значения и процентили каждого столбца в DataFrame. Это очень полезно, особенно.

Мы также можем проверить форму нашего 2D DataFrame, чтобы узнать, сколько у него строк и столбцов. Мы можем сделать это, используя df.shape, который возвращает кортеж в формате (строки, столбцы).

Мы также можем проверить имена всех столбцов в нашем DataFrame, используя df.columns.

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

df [‘цена’]

Приведенный выше код возвращает столбец цены, мы можем пойти дальше, сохранив его в новой переменной как таковой

цена = df [‘цена’]

Теперь мы можем выполнить любое другое действие, которое может быть выполнено в DataFrame для нашей переменной цены, поскольку оно является лишь подмножеством фактического DataFrame. Мы можем делать такие вещи, как df.head (), df.shape и т. Д…

Мы также можем выбрать несколько столбцов, передав список имен столбцов в df как таковой

data = df [[‘price’, ‘rooms’]]

Выше приведены столбцы с именами «цена» и «спальни», если мы введем data.head () в новую ячейку, мы получим следующее

Приведенный выше способ нарезки столбцов возвращает все элементы строк в этом столбце. Что если мы хотим вернуть подмножество строк и подмножество столбцов из нашего набора данных? Это можно сделать с помощью .iloc и проиндексировать аналогично спискам Python. Таким образом, мы можем сделать что-то вроде

df.iloc [50:, 3]

Который возвращает 3-й столбец от 50-й строки до конца. Это довольно аккуратно и так же, как нарезка списков в Python.

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

Что, если мы хотим получить все дома с одинаковым количеством спален и определить среднюю цену каждой отдельной спальни? Это относительно легко сделать в пандах, это можно сделать как таковое;

df.groupby (‘спальни’) [‘цена’] .mean ()

Вышеупомянутое сначала группирует DataFrame по наборам данных с идентичным номером спальни с помощью функции df.groupby (), затем мы говорим, что мы даем только столбец спальни, и используем функцию .mean (), чтобы найти среднее значение каждого дома в наборе данных..

Что если мы хотим визуализировать вышесказанное? Мы хотели бы иметь возможность проверить, как меняется средняя цена каждого отдельного номера спальни? Нам просто нужно связать предыдущий код с функцией .plot () как таковой;

df.groupby (‘спальни’) [‘цена’] .mean (). plot ()

У нас будет вывод, который выглядит таковым;

Выше показывает нам некоторые тенденции в данных. На горизонтальной оси у нас есть различное количество спален (обратите внимание, что более чем один дом может иметь X количество спален), На вертикальной оси мы имеем среднее значение цен относительно соответствующего количества спален на горизонтальной ось. Теперь мы можем сразу заметить, что дома с 5-10 спальнями стоят намного дороже, чем дома с 3 спальнями. Также станет очевидным, что дома с 7 или 8 спальнями стоят намного дороже, чем дома с 15, 20 или даже 30 комнатами..

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

Потерянная информация

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

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

Панды предоставляют нам функцию для поиска пропущенных значений в DataFrame с именем isnull ().

Функция isnull () может использоваться как таковая;

df.isnull ()

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


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

Чтобы заполнить все пропущенные значения в DataFrame, мы используем функцию .fillna (), используемую как таковую;

df.fillna (0)

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

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

Все примеры в этой статье можно найти Вот.

Чтобы узнать больше, проверьте Анализ данных с помощью онлайн-курса Python и Pandas.

TAGS:

  • питон

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map