我有一张桌子
Id Brand1 Brand2 Brand3 Brand4
0 1 0 0 1
1 1 0 1 0
2 1 0 1 0
3 1 1 0 0
4 1 1 0 1
,我正在尝试使用品牌组合创建一个ID数量表。
Brand1 Brand2 Brand3 Brand4
Brand1 - 2 2 2
Brand2 2 - 0 1
Brand3 2 0 - 0
Brand4 2 1 0 -
由于它们具有相同的值,因此也可以使用。
Brand1 Brand2 Brand3 Brand4
Brand1 - 2 2 2
Brand2 - - 0 1
Brand3 - - - 0
Brand4 - - - -
答案 0 :(得分:5)
您可以使用简单的矩阵乘积来做到这一点:
import pandas as pd
df = pd.DataFrame({
'Brand1': [1, 1, 1, 1, 1],
'Brand2': [0, 0, 0, 1, 1],
'Brand3': [0, 1, 1, 0, 0],
'Brand4': [1, 0, 0, 0, 1],
})
cross = df.T @ df
print(cross)
# Brand1 Brand2 Brand3 Brand4
# Brand1 5 2 2 2
# Brand2 2 2 0 1
# Brand3 2 0 2 0
# Brand4 2 1 0 2