Руководство по использованию панд для быстрого исследования, неброских отчетов и анализа.

Что происходит, когда вы получаете новый набор данных и вам нужно провести быстрое и (нет, не грязное) приятное исследование, даже неброские отчеты и анализ?

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

К счастью, у панд есть несколько изящных методов, позволяющих очень легко получить довольно впечатляющую информацию, не тратя часы и часы на копание, поиск и подсчет/суммирование значений повсюду.

В этой статье я буду использовать набор данных IBM HR Analytics Employee Attrition & Performance от Kaggle.

Просмотр данных

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

Что ж, выглядит красиво, однако мы даже не можем увидеть все столбцы в одном стеке без прокрутки. К счастью, в Pandas есть метод DataFrame.columns().

Ну, это больше, чем столбцы, которые вы используете для отслеживания арендной платы. Сколько строк и столбцов? Просто: посмотрите на атрибут DataFrame.shape:

Теперь, когда мы прошли пару кругов по DataFrame, пришло время заглянуть внутрь. Это данные об убыли сотрудников, и, как вы видите, у нас указан отдел каждого сотрудника. Из каких отделов были сотрудники, из которых поступали данные? Метод Series.unique() имеет ответ:

Следующим логичным вопросом может быть: а как распределяются сотрудники по этим отделам. В Excel это будет функция countif. В Pandas у нас есть Series.value_counts()

Если вы хотите, чтобы результат был более красивым, просто оберните его в pandas.DataFrame().

Поскольку мы работаем с данными об убыли, было бы неплохо посмотреть, как выглядела убыль в период сбора данных, верно? Что-то вроде pd.crosstab() сделает свое дело:

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

Довольно впечатляет, да, со строкой кода, которая даже не длинная? Теперь у кросс-таблицы есть несколько параметров, которые стоит изучить.

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

нормализовать

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

маржа

Вы можете получить промежуточные итоги, итоги по строкам и столбцам, а также общее количество сотрудников — все за один раз.

значения и aggfunc

С помощью параметра values ​​ вы можете указать столбец, который хотите использовать для создания новых значений DataFrame. Вот, например, я выбрал столбец «Возраст». Важно отметить, что если вы указываете значения, вы должны указать, что Pandas должен делать именно с этими значениями, через параметр aggfunc :

На данный момент это не слишком интересно, мы уже видели эту картину — но теперь представьте, что вы хотите знать средний возраст в каждой корзине отдела/убыли. Все, что вам нужно сделать, это изменить aggfunc на «mean»:

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

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

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

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.