Найти тему
Властелин машин

5 эффективных приемов исследования набора данных с Python

Оглавление

Исследование свойств числовой последовательности данных с помощью Python является важнейшим этапом анализа. В этой статье речь пойдет об основных инструментах и способах их применения.

Будем предполагать, что такие распространенные библиотеки для работы с данными, как Pandas, NumPy, Matplotlib вы установили. Кроме того, смогли загрузить информацию в объект Pandas - DataFrame или Series (подробнее читай здесь).

В демонстрационных целях работа будет проводиться со сводной таблицей о способах завершения своих побед всеми бойцами американской лиги UFC (название - p_all, о получении читай здесь), которая построена на основании сведений с сайта ufcstats.com (о том, как проведен его парсинг, писал ранее):

Уникальные значения

Для получения уникальных значений можно использовать метод unique. Рассмотрим его работу на примере столбца sum нашей таблицы p_all:

-2

То есть количество побед бойцов UFC в рамках лиги варьируется от 1 до 23.

Метод value_counts помимо уникальных значений выводит информацию об их количестве в наборе:

-3

Минимум, максимум

Извлечение данных метрик осуществляется путем вызова методов min и max:

-4

Гистограмма

Отображает распределение значений последовательности по интервалам. Простым способом ее вывода является вызов метода hist, для которого в параметре bins задается либо число интервалов (Pandas выберет равномерные интервалы сам), либо их границы.

Для того, чтобы распределить количество побед бойцов UFC по полуинтервалам от 1 до 2, от 2 до 3 ..., где правые значения не включаются в полуинтервал (кроме последнего), наберем команду:

-5

Правая граница bins устанавливается нами на 24 (max - 23,а arange последнее число не включает), чтобы формируемые диапазоны приняли вид - [1,2) ...[22,23), [23,24] и в каждый попало только одно значение числа побед:

-6

Если захотим, чтобы график отражал процентные соотношения, то в hist следует добавить параметр density=True:

-7
-8

Гистограмма значений

Если ваша цель не только визуализация, но и извлечение распределения значений по диапазонам, то можно воспользоваться методом histogram библиотеки NumPy (псевдоним np):

-9

Он принимает аналогичный hist параметр bins и возвращает количество значений, встретившихся в каждом диапазоне, а также список краев полуинтервалов.

Так как значениями нашего столбца являются целые числа, способы их подсчета путем распределения по диапазонам сложнее, чем применение того же метода Pandas - value_count. Если требуется нормировка, то значения следует поделить на их сумму:

-10
-11

Если теперь требуется получить график гистограммы, то воспользуйтесь функцией plot с параметром kind=bar (значения распределения уже имеются, поэтому фактически будет строится столбчатая диаграмма):

-12
-13

Квантили

Квантилью заданного уровня (задается на отрезке от 0 до 1 и обозначает процент) является такое значение, что соответствующий процент членов последовательности не превышает его. Например, из графика выше видно, что свыше 30% процентов бойцов UFC имеют в своем активе ровно 1 победу, то есть квантилью уровня 0.3 и ниже будет 1. Для получения квантилей может использоваться метод quantile:

-14

Если же нас интересует квантиль уровня 0.4, то получим значение 2:

-15

Квантиль уровня 1 является значение большее или равное всем представленным в наборе:

-16

-17

Наука
7 млн интересуются