我有客户访问记录,他们来自哪个渠道.我希望每个客户都有一个记录,其中我有他们来自的第一个频道和他们来自的最后一个频道.
我需要补充的另一个逻辑是,如果第一个频道是"Direct",那么就不要拿它go 看下一个记录.如果下一个记录也是"直接",那么也不要拿它,而是看下一个记录.如果您为客户完成了所有记录,并且这些记录都是"直接"的,那么您可以将第一个频道设置为"直接". 对于最后一个频道,我需要同样的逻辑.获取频道,如果是"直接",则转到前一个频道.如果是"直接",则判断前一条记录,直到完成所有记录.
输入数据如下所示:
Customer ID | Date | Channel |
---|---|---|
1 | 1/1/24 | |
1 | 1/2/24 | Search |
1 | 1/3/24 | Direct |
2 | 1/5/24 | Direct |
2 | 1/6/24 | Paid |
2 | 1/7/24 | |
3 | 1/8/24 | Direct |
3 | 1/9/24 | Direct |
3 | 1/10/24 | Direct |
3 | 1/11/24 | Direct |
我需要的输出是这样的:
Customer ID | First Channel | Last Channel |
---|---|---|
1 | Search | |
2 | Paid | |
3 | Direct | Direct |
如何在我的DataFrame中做到这一点?
可能我需要创建两个For循环,一个循环遍历所有记录,另一个循环遍历每个客户记录.它分配第一个通道,然后判断它是否是"Direct",然后转到下一个记录,直到循环结束.