[英]create undirectional adjacency matrix in python
I have a adjacency list which I want to convert to matrix, My data looks something like this我有一个我想转换为矩阵的邻接列表,我的数据看起来像这样
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
The end result should look like this最终结果应该是这样的
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
an undirectional matrix, however I'm getting a directional matrix一个无向矩阵,但是我得到了一个有向矩阵
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
how do I get an undirectional matrix, this is my code我如何获得无向矩阵,这是我的代码
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)
As long as the matrix is square, just take the union of the original matrix and its transposed copy:只要矩阵是方阵,只需取原始矩阵与其转置副本的并集:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.