我有一个数据集的所有客户购买了在过去5年与下面的列作为一个例子。
客户ID|订单号|订购日期(日期时间)|项目ID
我需要做的是分配每个单独的客户订单位置(即1,2,3,4)-因此,对于每个客户,我能够知道哪个订单是他们的第一,第二或第三使用上述标准
需要考虑的事项:
1.同一表中有多个客户ID和订单号
1.有多个行从同一个客户和订单号组合,因为每个订单有多个项目,所以如果第一个订单的客户有3个项目上,我希望所有3个项目显示为1。
努力寻找一个如何做到这一点的起点
以下是数据表:
import pandas as pd
df = pd.DataFrame({'Customer ID' : ['C100003','C100002','C100002','C100002','C100003','C100002'],
'Order Number' : ['RJSJ0053','RJSJ0060','RJSJ0085','RJSJ0085','RJSJ0089','RJSJ0092'],
'Order Date' : ['2023-05-08','2023-06-09','2023-06-13','2023-06-13','2023-06-13','2023-06-14'],
'Item ID' : ['Mouse','Keyboard','Computer','Monitor','Keyboard','Headset'],
'Order Position' : [1,1,2,2,2,3]})
1条答案
按热度按时间vmjh9lq91#
首先,删除所有重复的
[Customer ID, Order Number]
。这将得到一个看起来像这样的表:现在我们可以按
[Customer ID, Order Date]
排序,创建一个按Customer ID
分组的累积计数,然后向前填充缺失的值,因为这些是相同顺序的多个项目。