Как мне подсчитать, сколько раз A={Лук} и B={Фасоль,яйца} встречаются в наборе данных?

#python #data-mining

#питон #интеллектуальный анализ данных

Вопрос:

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

Как мне подсчитать, сколько раз A={Лук} и B={Фасоль,яйца} встречаются в наборе данных?

Комментарии:

1. Пожалуйста, добавьте ответ в данный набор данных.

Ответ №1:

Учитывая ваш набор данных

 dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],  ['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],  ['Milk', 'Apple', 'Kidney Beans', 'Eggs'],   ['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],   ['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]  

сначала мы делаем массив плоским, а затем подсчитываем вхождения каждого элемента

 flat_dataset = [item for sublist in dataset for item in sublist] counter = { item:flat_dataset.count(item) for item in flat_dataset }  

Результат:

 {'Milk': 3,  'Onion': 4,  'Nutmeg': 2,  'Kidney Beans': 5,  'Eggs': 4,  'Yogurt': 3,  'Dill': 1,  'Apple': 1,  'Unicorn': 1,  'Corn': 2,  'Ice cream': 1}  

Если вам просто нужны какие-то конкретные ключи, используйте

 counter.get('Onion') # 4 counter.get('Kidney Beans')   counter.get('Eggs') # 9  

если вы хотите, сколько раз » Лук » появляется хотя бы один раз в каждом подмассиве

 sum(['Onion' in subset for subset in dataset]) # 3  

если вы хотите, сколько раз «Фасоль» и «Яйца» появляются вместе хотя бы один раз в каждом подмассиве

 sum(['Kidney Beans' and 'Eggs' in subset for subset in dataset]) # 4  

Комментарии:

1. Обратите внимание, что это дает сумму всех вхождений «фасоли» и «яиц», ни объединения (которое дедуплицировало бы), ни пересечения.

2. Спасибо вам за разъяснение. Я изменил ответ также с учетом вашего наблюдения