gpt4 book ai didi

python - 将边列表转换为邻接矩阵

转载 作者:行者123 更新时间:2023-11-28 21:34:30 26 4
gpt4 key购买 nike

我的数据框表示图形的边列表,格式如下:

  node1 node2 weight
0 a c 1
1 b c 2
2 d c 3

我的目标是生成等效的邻接矩阵:

    a b c d
a 0 0 1 0
b 0 0 2 0
c 0 0 0 3
d 0 0 0 0

目前,在构建边的数据框时,我计算节点的数量并创建一个 NxN 数据框并手动填充值。 pandas 从第一个数据帧生成第二个数据帧的方式是什么?

最佳答案

使用 pivotreindex

In [20]: vals = np.unique(df[['node1', 'node2']])

In [21]: df.pivot(index='node1', columns='node2', values='weight'
).reindex(columns=vals, index=vals, fill_value=0)
Out[21]:
node2 a b c d
node1
a 0 0 1 0
b 0 0 2 0
c 0 0 0 0
d 0 0 3 0

或者使用set_indexunstack

In [27]: (df.set_index(['node1', 'node2'])['weight'].unstack()
.reindex(columns=vals, index=vals, fill_value=0))
Out[27]:
node2 a b c d
node1
a 0 0 1 0
b 0 0 2 0
c 0 0 0 0
d 0 0 3 0

关于python - 将边列表转换为邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53246086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com