Суммирование и Анализ Pandas DataFrame
В этом уроке вы узнаете, как быстро суммировать и анализировать Pandas DataFrame. К концу этого урока вы сможете проводить некоторый исследовательский анализ вашего набора данных с помощью pandas. Вы узнаете, как рассчитывать общие характеристики вашего набора данных, такие как меры центральной тенденции или меры разброса. Вы также узнаете, как считать уникальные значения и легко получать сводную статистику для всего DataFrame.
Вы узнаете, как проводить исследовательский анализ данных (EDA), который является критическим первым шагом в любом виде анализа данных или машинного обучения. Этот процесс позволяет вам обнаруживать закономерности и аномалии в ваших данных. Это позволяет вам формулировать предположения и начинать создавать тесты для их проверки. Изучение этих навыков будет критически важно для многих других задач по манипуляции и работе с данными. Давайте начнем!
Содержание
Загрузка примера Pandas DataFrame
Давайте загрузим пример Pandas DataFrame, который мы будем использовать на протяжении всего урока. Урок размещается на нашей странице GitHub и может быть загружен путем копирования и вставки приведенного ниже кода. Также выведем первые пять записей нашего DataFrame с помощью функции .head()
.
Мы видим, что у нас есть четыре различных столбца:
Столбец
date
, который содержит дату транзакцииСтолбцы
gender
иregion
, которые содержат категориальные переменныеСтолбец
sales
, который содержит сумму продаж
Давайте углубимся в проведение исследовательского анализа данных нашего DataFrame!
Сводные функции Pandas
Pandas предоставляет множество сводных функций, которые помогают нам лучше понять наш набор данных. Эти функции достаточно умны, чтобы определить, к Series или DataFrame мы применяем эти функции. Pandas автоматически будет размещать сводный метод там, где это необходимо.
В следующих разделах вы рассмотрите только несколько ключевых методов, доступных вам. Вы узнаете, как найти среднее значение столбца, стандартное отклонение и асимметрию, а также сложить столбец и получить полезную сводную статистику за один раз.
Нахождение Среднего Значения в Pandas DataFrame
Давайте начнем с простого вычисления: нахождения среднего (или среднего значения) в Pandas DataFrame. Pandas предоставляет удобный метод для этого — .mean(). Мы можем применить этот метод к одному столбцу или к нескольким столбцам. Давайте посмотрим, как это делается:
Мы видим здесь, что применение метода .mean()
к одному столбцу возвращает скалярное значение. Это означает, что мы можем легко получить это значение напрямую, присвоить его переменной и использовать в других местах. Что произойдет, если мы применим этот метод ко всему DataFrame? Pandas позволяет нам указать, что мы хотим вычислить среднее только для числовых столбцов, используя параметр numeric_only = True
.
Это фактически возвращает pandas Series – что означает, что мы можем индексировать значения, которые нас интересуют. Например, если бы мы вывели df.mean(numeric_only=True)['sales']
, то вернулось бы то же значение, как и при вычислении среднего только для одного столбца. По умолчанию Pandas игнорирует пропущенные значения при вычислении среднего. Однако мы можем включить их в расчет, указав skipna=False
в качестве параметра.
Нахождение Стандартного Отклонения в Pandas DataFrame
Pandas также предоставляет удобный метод для вычисления стандартного отклонения. Стандартное отклонение является полезной мерой для определения, насколько распределены данные. Например, небольшое стандартное отклонение означает, что данные сгруппированы близко друг к другу. Наоборот, большое стандартное отклонение указывает на то, что данные имеют гораздо большее разбросание. Для вычисления стандартного отклонения в Pandas мы используем метод .std()
. Как и метод .mean()
, мы можем применить этот метод к одному столбцу, к нескольким столбцам или ко всему DataFrame. Одним из преимуществ использования Pandas является то, что многие методы используют похожую конвенцию и позволяют передавать те же параметры. Давайте применим метод ко всему DataFrame, указывая, чтобы пропуски игнорировались и включались только числовые столбцы:
Аналогично нашему предыдущему примеру, этот метод возвращает pandas Series при применении к более чем одному столбцу.
Нахождение Асимметрии (Skew) в Pandas DataFrame
Асимметрия измеряет асимметрию нормального распределения от среднего значения этого распределения. Значение асимметрии может быть положительным или отрицательным, в зависимости от направления смещения. Таблица ниже разбивает некоторые распространенные диапазоны значений асимметрии:
< -1
Left
High
> -1 and < -0.5
Left
Moderate
> -0.5 and < 0
Left
Approximately symmetric
0
N/A
Completely symmetric
> 0 and < 0.5
Right
Approximately symmetric
> 0.5 and < 1
Right
Moderate
> 1
Right
High
Мы можем измерить асимметрию с помощью метода .skew()
. Аналогично предыдущим примерам, мы можем вычислить асимметрию для одного столбца, нескольких столбцов и всего DataFrame с использованием метода .skew()
. Давайте посмотрим, что происходит, когда мы вычисляем асимметрию только для числовых столбцов:
В приведенном выше примере данные о продажах имеют умеренную положительную асимметрию, что означает, что данные склонены вправо.
Чтение Документации Pandas
Перед тем как продолжать искать различные способы исследования и анализа вашего набора данных, давайте рассмотрим чтение документации Pandas. Почему это важно? Способность читать документацию может показаться немного пугающей сначала, но в конечном итоге оказывается невероятно ценным ресурсом.
Посмотрите на документацию для метода .mean()
, которую можно найти здесь. Ниже приведена картинка из документации, которая поможет вам понять, как использовать этот метод:
Эта документация предоставляет информацию о параметрах и возвращаемых значениях метода, а также примеры использования.
В документации pandas есть четыре основных раздела:
Method Name: здесь мы видим, например, что рассматриваем метод DataFrame (в отличие от метода Series).
Description: это предоставляет простое описание на английском языке того, что делает метод.
Parameters: различные параметры, которые принимает метод и как с ними работать. Мы видим, например, что по умолчанию Pandas пропускает отсутствующие данные.
Returns: то, что возвращает метод (то есть, что ожидать).
Теперь ваша очередь! Попробуйте найти метод, который суммирует значения столбца. Затем в вашем редакторе кода попробуйте написать строку кода для суммирования всех значений в столбце sales
.
Решение Поскольку вы хотите сложить все значения в данном столбце или по всему DataFrame, мы знаем, что хотим рассчитать сумму. При поиске метода sum
возвращается несколько различных элементов, включая страницу pandas.DataFrame.sum. Здесь можно увидеть, что мы можем просто применить этот метод к DataFrame или к столбцу.
Получение Сводных Статистик с Помощью Pandas describe
В предыдущих разделах вы узнали, как рассчитывать отдельные статистики, такие как среднее или стандартное отклонение. Хотя этот подход работает, часто возникает необходимость получить общее представление о наборе данных. В этом случае приходит на помощь метод Pandas .describe()
.
Метод предоставляет несколько полезных статистик, таких как среднее, стандартное отклонение и квартили данных. Давайте попробуем использовать этот метод, чтобы посмотреть, что он возвращает:
Этот код выведет таблицу со сводными статистиками для числовых столбцов DataFrame, включая среднее значение, стандартное отклонение, минимум, квартили и максимум.
Метод .describe()
возвращает целый массив информации о числовых столбцах в нашем DataFrame. Когда метод применяется к одному столбцу, он возвращает Series. В то же время, когда он применяется к нескольким столбцам, возвращается DataFrame.
Нахождение Уникальных Значений в Pandas DataFrame
Другая распространенная операция, которую вы будете выполнять, — это идентификация различных уникальных значений, существующих в данном столбце. Поскольку ввод данных часто несовершенен, мы можем использовать поиск уникальных значений как способ выявить качество данных в наборе данных. Это также дает нам представление о полноте данных и любых проблемах с целостностью данных, которые могут возникнуть.
Давайте рассмотрим пример: мы хотим увидеть, какие уникальные значения есть в столбце region
. Для этого можно использовать метод .unique()
.
Этот код выведет массив уникальных значений, присутствующих в столбце region
.
Мы видим, что метод возвращает список уникальных значений в нашем столбце. Существует много других нюансов этого метода, но понимание того, как получать уникальные значения, — отличный первый шаг.
Создание Кросс-таблиц для Pandas DataFrame
В этом финальном разделе мы рассмотрим создание кросс-таблицы из нашего набора данных. Кросс-таблица показывает взаимосвязь между двумя или более категориальными переменными, отображая количество записей, попадающих в пересечение этих двух переменных.
Это может быть полезно для демонстрации того, как данные распределяются по различным категориальным или числовым переменным.
Давайте рассмотрим пример создания кросс-таблицы:
Мы видим, что по умолчанию Pandas предоставляет количество записей для этих различных категорий. Однако мы также можем изменить это поведение, чтобы получить другую агрегацию.
Например, мы можем передать параметры values=
и aggfunc=
, чтобы переопределить нормальное поведение. Давайте, например, рассмотрим те же две категории, но предоставим сумму всех продаж:
Этот код создаст кросс-таблицу, показывающую сумму продаж для каждой комбинации значений в столбцах region
и category
.
Мы видим, как полезна эта типовая предварительная аналитика! Например, мы можем выявить, что продажи в южном регионе значительно выше, а продажи в северо-западном регионе наименьшие.
Упражнения
Пришло время проверить свои знания! Посмотрите на упражнения ниже и попробуйте решить их. Решения доступны, нажав кнопку переключения рядом с каждым вопросом.
Заключение и повторение
В этом руководстве вы узнали, как исследовать данные с помощью Pandas DataFrame. Вы научились использовать некоторые методы для расчета статистик, а также как использовать метод .describe()
, чтобы получить некоторые инсайты в DataFrame. Вы также узнали, как использовать метод .crosstab()
для подсчета частот и других ценных инсайтов. Наконец, вы научились использовать документацию Pandas для поиска и понимания других полезных методов и функций.
Дополнительные ресурсы
Для изучения связанных тем ознакомьтесь с статьями ниже:
Pandas Describe: Описательная статистика вашего DataFrame
Как вычислить коэффициент корреляции Пирсона в Python
Как рассчитать Z-оценку в Python (4 способа)
Pandas value_counts для подсчета уникальных значений
Last updated