在python中创建交互矩阵

在python中创建交互矩阵,python,pandas,Python,Pandas,有人能告诉我如何从数据帧生成交互矩阵吗 输入: cd1 = [True, False, True, False, False] cd2 = [False, True, True, False, False] cd3 = [True, False, False, True, True] df = pd.DataFrame({"cd1":cd1, "cd2": cd2, "cd3": cd3}) 我想要一个像这样的输出 cd1 cd2 cd3 cd1 2

有人能告诉我如何从数据帧生成交互矩阵吗

输入:

    cd1 = [True, False, True, False, False]
    cd2 = [False, True, True, False, False]
    cd3 = [True, False, False, True, True]
    df = pd.DataFrame({"cd1":cd1, "cd2": cd2, "cd3": cd3})
我想要一个像这样的输出

   cd1 cd2 cd3
cd1 2   1   1
cd2 1   2   0
cd3 1   0   3
将df转换为int类型并计算矩阵点积:

还有一个选择是numpy的matmul

df.astype(int).T.dot(df)

     cd1  cd2  cd3
cd1    2    1    1
cd2    1    2    0
cd3    1    0    3
pd.DataFrame(np.matmul(df.T.astype(int),df.astype(int)),columns=df.columns,index=df.columns)
Out[283]: 
     cd1  cd2  cd3
cd1    2    1    1
cd2    1    2    0
cd3    1    0    3