我有一个看起来像这样的数据框:
user_id reordered
0 128305 1
1 128305 1
2 128305 1
3 128305 0
4 128305 0
5 128305 0
6 128305 0
7 128305 0
8 144548 1
9 144548 1
10 144548 1
**etc...**
在这种情况下,它记录用户订购的每个产品,并记录所述订购是否实际上是重新订购。我需要做的是计算每个客户的新订单与重新订单的比率。我想通过“提取”'重新排序'= 0的值来实现这一点,将它们带入一个新的数据帧,将两个数据帧分组为user_id,然后将两个数据帧重新组合在一起,这样我就可以正确地找到一个到另一个。但是,由于我必须在重新加入它们之前对它们进行总结,因此它们不再将user_id作为实际列,这意味着它们不能简单地连接在一起。我通过在一个临时变量上交叉加入两个来解决这个问题,这种方法很有效......除了导致其中一个帧的数据被重复,无用之外。为了想象正在发生的事情,这就是我想得到的:
Total Products (formed by performing a groupBy(user_id) on the original dataframe
user_id
6550 23
27523 51
43048 40
New Orders (formed by performing a groupBy() on a dataframe containing only those rows where reordered = 0)
user_id
6550 18
27523 25
43048 32
聚集在一起形成:
user_id TotalOrders NewOrders
6550 23 18
27523 51 25
43048 40 32
这就是我实际获取的内容:
Total Products New Orders
0 23 18
1 23 25
2 23 32
如您所见,只有第一行(23 - 18)应该在这里 - 其他两个是整个New Orders列为Total Products列中的每个值发布一次的结果。有没有解决的办法?我最初的groupBy()是责备吗?
感谢。