我在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)
并创建一个具有
的数据帧df2id 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上的技巧处于初级水平。 提前谢谢。
答案 0 :(得分:2)
您可以先按apply
sorted
对所有行进行排序,然后按stack
和value_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