通过使用python中的字段值来计数ID

时间:2019-11-25 14:10:01

标签: python python-3.x pandas numpy

我有一张桌子

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      -       -       -       -

1 个答案:

答案 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