Попытка найти корреляцию между элементами, которые структурированы в один ряд набора данных.Хочу найти корреляцию частоты между наборами предметов.
Я должен признать, что я полностью потерян, и я пытался поискать в Google, чтобы найти решения в течение почти 6 часов на данный момент.
Попытка проиллюстрировать данные ниже:
#create a table
data = {'Customer': [1, 2, 3, 4],
'Order': ['1 Hamburger, 1 Soda',
'1 Soda, 1 Hamburger, 1 Fries',
'1 Pizza, 2 Soda',
'1 Soda, 1 Ice Cream']}
Таблица:
Customer Order
0 1 1 Hamburger, 1 Soda
1 2 1 Soda, 1 Hamburger, 1 Fries
2 3 1 Pizza, 2 Soda
3 4 1 Soda, 1 Ice Cream
Таким образом, здесь мы можем видеть, что элементы в столбце заказа не разделены.Поэтому я разделил их по их запятому.
new = df["Order"].str.split(",", n = -1, expand = True)
new.columns.astype('str')
new.rename(columns=lambda x: 'Item'+str(x), inplace=True)
После разделения элементов в столбце заказа я удалил число перед элементами, с помощью этого:
for i in list(new):
new[i] = new[i].map(lambda x: x.lstrip()[1:] if x is not None else None)
Которыйвозвращает эту таблицу:
Item0 Item1 Item2
0 Hamburger Soda None
1 Soda Hamburger Fries
2 Pizza Soda None
3 Soda Ice Cream None
Пока все хорошо (я думаю), теперь возникает проблема.
Я хочу посмотреть, как часто, например, Гамбургер и Сода покупаются вместе.Что в ответе означает, что я могу посмотреть на корреляцию между элементами, так что я могу видеть, например, как соотносятся Гамбургер и Фрис.
Пока я думаю, что решение может быть чем-то вроде этого (Пришлось составить таблицувручную, так как я не нашел способа сделать это в Пандах):
example = {'Hamburger': [1,1,0,0],
'Soda': [1,1,1,1],
'Pizza': [0,0,1,0],
'Fries': [0,1,0,0],
'Ice Cream': [0,0,0,1]}
Hamburger Soda Pizza Fries Ice Cream
0 1 1 0 0 0
1 1 1 0 1 0
2 0 1 1 0 0
3 0 1 0 0 1
Есть ли хороший способ показать соотношение предметов?
Нужно ли конвертировать его?Например, в 0 и 1, как я делал в приведенной выше таблице, если так, что было бы лучше, если бы, скажем, набор данных составлял 1 миллион строк?
Меня также беспокоит эффект неравномерного количестваэлементов в строке, будет ли результат искажаться из-за различий в строках?
Например, в приведенной выше таблице Гамбургер и Сода находятся в строке 1, в то время как в строке 2 он также включает фри, какчто влияет на корреляцию?