У меня есть такой фрейм данных:
index customerID item_tag orderID Amount
0 23 A 1 34.50
1 55 B 2 11.22
2 23 A 3 9.34
3 55 D 4 123.44
4 55 F 5 231.40
У меня также есть список, содержащий теги item_tag:
my_list = ['A', 'B', 'D']
Теперь я хочу проверить, сколько типов элементов из my_list
заказывал каждый покупатель.Например, для клиента 23 это число будет равно 1, поскольку клиент 23 заказывает только товар, помеченный как A, но не B или D. Однако клиент 55 заказал товары B и D, поэтому эта переменная индикатора будет равна 2, как дваТипы предметов из my_list
присутствуют в его заказах.(он также заказал элемент F, но этот элемент отсутствует в my_list
.)для каждого элемента в списке, но я подозреваю, что есть более элегантный способ.Я не смог найти ни одного, ни в Google, ни здесь.Мой фрейм данных содержит миллион строк, поэтому я ищу наиболее эффективное решение.
В результате я хочу фрейм данных, подобный этому:
index customerID if_A if_B if_D sum_in_list
0 23 1 0 0 1
1 55 0 1 1 2