在python中创建无向邻接矩阵

在python中创建无向邻接矩阵,python,Python,我有一个邻接列表,我想转换成矩阵,我的数据看起来像这样 User_Name M_User Total user 1 user 2 1 user 1 user 3 1 user 1 user 3 1 user 1 user 7 1 user 3 user 2 1 user 2 user 7 1 user 1 user 2

我有一个邻接列表,我想转换成矩阵,我的数据看起来像这样

User_Name    M_User     Total
user 1       user 2      1
user 1       user 3      1
user 1       user 3      1
user 1       user 7      1
user 3       user 2      1
user 2       user 7      1
            user 1   user 2   user 3   user 7 

user 1         0         1        1       1
user 2         1         0        1       1
user 3         1         1        0       0
user 7         1         1        0       0
最终结果应该是这样的

User_Name    M_User     Total
user 1       user 2      1
user 1       user 3      1
user 1       user 3      1
user 1       user 7      1
user 3       user 2      1
user 2       user 7      1
            user 1   user 2   user 3   user 7 

user 1         0         1        1       1
user 2         1         0        1       1
user 3         1         1        0       0
user 7         1         1        0       0
一个无向矩阵,但是我得到了一个方向矩阵

            user 1   user 2  user 3  user 7 
user 1         0       1       1        1
user 2         0       0       0        1
user 3         0       1       0        0
user 7         0       0       0        0
如何得到无向矩阵,这是我的代码

import pandas as pd
df = pd.read_csv("C:/Users/file.csv")
df = df.drop_duplicates()

df = pd.crosstab(df.User_Name, df.M_User)
idx = df.columns.union(df.index)
df = df.reindex(index = idx, columns=idx, fill_value=0)

只要矩阵是正方形,只需取原始矩阵与其转置副本的并集:

df.T|df
#        user 1  user 2  user 3  user 7
#user 1       0       1       1       1
#user 2       1       0       1       1
#user 3       1       1       0       0
#user 7       1       1       0       0
一次标记两个值有那么难吗?