我正在为购买了“X”的客户开发一个事务数据集。逻辑如下:
如果客户在购买物品“X”(例如custID 1)之前有购买历史记录,则将该客户标记为“很棒”
如果客户只购买了一次X(例如custID 2,3),那么将该客户标记为“boo”
如果客户第一次购买X,然后又购买了其他物品(例如custID 4),那么将该客户标记为“awesome”
我想用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
以下是将
groupby
和apply
与自定义函数一起使用的解决方案:很可能有更好的解决办法。你知道吗
相关问题 更多 >
编程相关推荐