Создать своего рода декартово произведение столбцов данных на основе существующих комбинаций в данных - PullRequest
0 голосов
/ 06 ноября 2018

В настоящее время я работаю с данными о товарах (поступающих из интернет-магазина), и эти продукты имеют иерархическую структуру категорий (категории 1, 2, 3), причем 3 является «наиболее определенной категорией» (представьте: футбольные бутсы (1) ), Обувь из искусственной травы (2), Adidas (3)).

Поскольку в наборе данных содержится более 25000 записей, я начал искать способ создания своего рода отображения, которое может сказать мне следующее: Какие возможные комбинации 1,2,3 (или просто 1,2) присутствуют в данных? Под этим я подразумеваю не все возможные комбинации , а просто те, которые присутствуют в данных.

Я быстро пришел к декартову произведению , используя itertools. Однако, рядом со мной, сталкивающимся с memory error, я считаю, что itertools (и идея декартового произведения) состоит в том, чтобы создать все возможные комбинации 1,2,3 (а не только те, которые действительно присутствуют).

Рассмотрим следующий кадр данных:

    df = pd.DataFrame({'Product ID': [1,2,3,4], 'Category 1': ['A','B','B','B'], 'Category 2':['C', 'D', 'D', 'E']}) 

Так что в этом случае я хотел бы увидеть следующий вывод: A, C, B,D, B,E.

Надеюсь понятно:)

PS : Может ли кто-нибудь объяснить, как я могу добавить «блоки данных» в вопрос StackOverflow вместо словаря, подобного этому?

1 Ответ

0 голосов
/ 06 ноября 2018

(df['Category 1'] + df['Category 2']).unique()

Или, если вы хотите посчитать комбинации:

(df['Category 1'] + df['Category 2']).value_counts()

...