Pandas: эффективный способ подсчета уникальных комбинаций двух столбцов

Pandas: эффективный способ подсчета уникальных комбинаций двух столбцов

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

В этой статье я расскажу вам о эффективном подходе к подсчету уникальных комбинаций двух столбцов в Pandas.

Подготовка данных

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

import pandas as pd

# Создаем таблицу
sales_data = {'Продукт': ['Мышь', 'Ноутбук', 'Клавиатура', 'Мышь', 'Наушники'],
              'Цена': [1000, 50000, 2000, 1200, 5000],
              'Количество': [10, 2, 5, 12, 3]}
df = pd.DataFrame(sales_data)

Наша таблица будет выглядеть следующим образом:

Продукт Цена Количество
0 Мышь 1000 10
1 Ноутбук 50000 2
2 Клавиатура 2000 5
3 Мышь 1200 12
4 Наушники 5000 3

Группировка данных

Для того, чтобы подсчитать уникальные комбинации двух столбцов, мы сначала должны объединить их в один столбец. Мы можем это сделать с помощью метода apply() и функции lambda.

# Объединяем столбцы Продукт и Цена
df['Комбинация'] = df.apply(lambda row: (row['Продукт'], row['Цена']), axis=1)

Мы использовали функцию lambda, чтобы создать новый столбец Комбинация, который содержит кортеж из значений столбцов Продукт и Цена. Мы также использовали параметр axis=1, чтобы указать, что мы хотим применить функцию к каждой строке таблицы.

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

# Группируем данные по комбинациям
grouped = df.groupby('Комбинация')['Количество'].sum().reset_index()

Мы используем метод groupby() для группировки данных по столбцу Комбинация. Затем мы используем метод sum() для подсчета суммы значений столбца Количество в каждой группе. Наконец, мы используем метод reset_index(), чтобы переустановить индекс таблицы после группировки.

Читайте так же  Получение длины очереди в Python: полное руководство

В результате мы получаем следующую таблицу:

Комбинация Количество
0 (Клавиатура, 2000) 5
1 (Мышь, 1000) 10
2 (Мышь, 1200) 12
3 (Наушники, 5000) 3
4 (Ноутбук, 50000) 2

Мы получили список уникальных комбинаций двух столбцов и количество вхождений каждой комбинации.

Поиск наиболее популярных комбинаций

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

# Сортируем данные по количеству вхождений
sorted_data = grouped.sort_values('Количество', ascending=False)

# Получаем наиболее популярную комбинацию
most_popular = sorted_data.iloc[0]

print(f"Наиболее популярная комбинация: {most_popular['Комбинация']}, "
      f"количество продаж: {most_popular['Количество']}")

Мы сортируем данные по столбцу Количество в порядке убывания, чтобы наиболее популярные комбинации были первыми. Затем мы используем метод iloc[0], чтобы получить первую строку таблицы, которая будет содержать наиболее популярную комбинацию.

В данном случае мы получим следующий вывод:

Наиболее популярная комбинация: ('Мышь', 1200), количество продаж: 12

Заключение

В этой статье мы рассмотрели эффективный способ подсчета уникальных комбинаций двух столбцов в Pandas. Мы использовали метод apply() и функцию lambda, чтобы объединить два столбца в один, а затем использовали метод groupby() и sum() для подсчета уникальных комбинаций и количества вхождений каждой комбинации.

Мы также рассмотрели как найти наиболее популярные комбинации двух столбцов в таблице.

Надеюсь, эти методы помогут вам эффективно работать с таблицными данными в Pandas.