Я работаю над набором транзакционных данных для клиентов, которые приобрели 'X'.Вот логика:
Если у покупателя есть история покупок до покупки товара «X» (например, custID 1), то пометьте этого покупателя как «отличный»
Если покупатель купил X только один раз(напр. custID 2, 3), затем пометьте этого покупателя как 'boo'
Если покупатель купил X в качестве первой покупки, а затем приобрел другие предметы (напр. custID 4), то пометьте этого покупателя как "удивительный"
Я хотел бы написать эту функцию, используя python.Любые предложения будут высоко оценены.
Токовый выход:
list = [(1, 111, '2016-01-10', 'A'), (1, 112, '2016-02-02', 'B'), (1, 112, '2016-02-02', 'C'), (1, 113, '2016-04-10', 'X'), (2, 211, '2016-02-02', 'X'),
(3, 311, '2016-04-05', 'X'), (4, 411, '2016-02-05', 'X'), (4, 411, '2016-02-05', 'C'), (4, 412, '2016-03-10', 'E'), (4, 413, '2016-07-14', 'E')]
labels = ['custID', 'transacID', 'orderDate', 'itemDescription']
df = pd.DataFrame.from_records(list, columns=labels)
df
custID transacID orderDate itemDescription
0 1 111 2016-01-10 A
1 1 112 2016-02-02 B
2 1 112 2016-02-02 C
3 1 113 2016-04-10 X
4 2 211 2016-02-02 X
5 3 311 2016-04-05 X
6 4 411 2016-02-05 X
7 4 411 2016-02-05 C
8 4 412 2016-03-10 E
9 4 413 2016-07-14 E
Ожидаемый выход:
custID transacID orderDate itemDescription label
0 1 111 2016-01-10 A great
1 1 112 2016-02-02 B great
2 1 112 2016-02-02 C great
3 1 113 2016-04-10 X great
4 2 211 2016-02-02 X boo
5 3 311 2016-04-05 X boo
6 4 411 2016-02-05 X awesome
7 4 411 2016-02-05 C awesome
8 4 412 2016-03-10 E awesome
9 4 413 2016-07-14 E awesome