Pandas交叉连接没有重复

时间:2018-05-02 17:33:22

标签: python pandas jupyter-notebook jupyter

我有一个看起来像这样的数据框:

    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()是责备吗?

感谢。

0 个答案:

没有答案