Руководство по использованию панд для быстрого исследования, неброских отчетов и анализа.
Что происходит, когда вы получаете новый набор данных и вам нужно провести быстрое и (нет, не грязное) приятное исследование, даже неброские отчеты и анализ?
Ну, вы всегда можете попросить больше времени или использовать Око Агамотто, но обычно вы не можете попросить больше времени, и вы, вероятно, не Верховный Маг.
К счастью, у панд есть несколько изящных методов, позволяющих очень легко получить довольно впечатляющую информацию, не тратя часы и часы на копание, поиск и подсчет/суммирование значений повсюду.
В этой статье я буду использовать набор данных 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. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.