总数没有。 pandas df中列与其他组合的组合

时间:2016-11-21 08:58:56

标签: python pandas

我在pandas df中有一张桌子

 id_x             id_y
  a                 b
  b                 c
  c                 d
  d                 a
  b                 a
and so on around (1000 rows)

我想找到每个id_x与id_y的组合计数。

即。 a与a-b,d-a(total 2 combinations)的组合 类似地,b总共2 combinations(b-c) and also a-b to be considered as a combination for b( a-b = b-a)

并创建一个具有

的数据帧df2
id   combinations
a          2
b          2
c          2    #(c-d and b-c)
d          1
and so on ..(distinct product_id_'s)

我试过这个代码

df.groupby(['id_x']).size().reset_index()

但得到错误的结果;

   id_x  0
0   a    1
1   b    1
2   c    1
3   d    1

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

1 个答案:

答案 0 :(得分:2)

您可以先按apply sorted对所有行进行排序,然后按stackvalue_counts创建Series

df = df.apply(sorted,axis=1).drop_duplicates().stack().value_counts()
print (df)
d    2
a    2
b    2
c    2
dtype: int64