查找pandas df

时间:2016-11-21 04:49:12

标签: python python-2.7 python-3.x pandas

我在pandas df中有一张桌子

product_id_x   product_id_y
1              2
1              3
1              4
3              7
3              11
3              14
3              2
and so on around (1000 rows)

我想找到每个product_id_x与product_id_y的组合计数。

即。 1与1-2,1-3,1-4组合(共3种组合) 类似地,3总共有4种组合。

并创建一个具有

的数据帧df2
product_id_x   combinations
1               3
3               4

and so on ..(distinct product_id_x's)

我应该遵循什么方法? 我在python上的技巧处于初级水平。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以在product_id_x列上使用groupby with agg

df2 = df.groupby(['product_id_x']).agg(['count'])

或者,您可以直接在组上使用size函数来获取每个组的大小:

df2 = df.groupby(['product_id_x']).size()

答案 1 :(得分:2)

size计算每个列值对一起发生的行数。 count计算相同的内容,但它们不为空。由于您没有提及有关空值的任何内容,因此我会在size之后使用groupby,然后unstack

df.groupby(['product_id_x', 'product_id_y']).size().unstack(fill_value=0)

enter image description here