Найти количество комбинаций столбцов в pandas df

У меня есть таблица в pandas df

product_id_x product_id_y 1 2 1 3 1 4 3 7 3 11 3 14 3 2 and so on around (1000 rows) 

Я хочу найти количество комбинаций для каждого product_id_x с product_id_y.

то есть. 1 имеет комбинации с 1-2,1-3,1-4 (всего 3 комбинации) аналогично 3 имеет всего 4 комбинации.

и создать фрейм данных df2, который имеет

 product_id_x combinations 1 3 3 4 and so on ..(distinct product_id_x's) 

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

2 Solutions collect form web for “Найти количество комбинаций столбцов в pandas df”

Вы можете использовать groupby с agg в столбце product_id_x :

 df2 = df.groupby(['product_id_x']).agg(['count']) 

Или вы можете напрямую использовать функцию size в группе, чтобы получить размер каждой группы:

 df2 = df.groupby(['product_id_x']).size() 

size подсчитывает количество строк, каждая из пар значений столбца происходит вместе. count подсчитывает то же самое, но там, где они не равны нулю. Поскольку вы ничего не упомянули о нулях, я буду использовать size после groupby , а затем unstack

 df.groupby(['product_id_x', 'product_id_y']).size().unstack(fill_value=0) 

введите описание изображения здесь

  • Как запустить производство python в среде клиента
  • как исправить distutils.errors.DistutilsError на py2app?
  • Биномиальный коэффициент Python
  • Попытка вырезать b '' из моего массива Numpy
  • СинтаксисError не исключается в Python 3
  • Общая реализация дерева?
  • Синтаксическая ошибка при печати с помощью Python 3
  • метод класса pass для fsolve
  • Добавление процесса в список (но ничего не делает с ним) изменяет поведение программы
  • Автоматическое преобразование типов пользовательских классов
  • Python3.4 datetime.today () и datetime.now ()
  • Python - лучший язык программирования в мире.