gpt4 book ai didi

python - 如何从 Python 中的邻接矩阵创建边列表数据框?

转载 作者:太空狗 更新时间:2023-10-29 20:40:20 24 4
gpt4 key购买 nike

我有一个形式为 df,

的 pandas 数据框(将 if 视为网络中节点的加权邻接矩阵)
    A    B    C    D
A 0 0.5 0.5 0
B 1 0 0 0
C 0.8 0 0 0.2
D 0 0 1 0

我想获得一个代表边列表的数据框。对于上面的例子,我需要一些形式,edge_list_df,

    Source    Target    Weight    
0 A B 0.5
1 A C 0.5
2 A D 0
3 B A 1
4 B C 0
5 B D 0
6 C A 0.8
7 C B 0
8 C D 0.2
9 D A 0
10 D B 0
11 D C 1

创建它的最有效方法是什么?

最佳答案

将对角线标记为 nan ,然后我们堆叠

df.values[[np.arange(len(df))]*2] = np.nan
df
Out[172]:
A B C D
A NaN 0.5 0.5 0.0
B 1.0 NaN 0.0 0.0
C 0.8 0.0 NaN 0.2
D 0.0 0.0 1.0 NaN
df.stack().reset_index()
Out[173]:
level_0 level_1 0
0 A B 0.5
1 A C 0.5
2 A D 0.0
3 B A 1.0
4 B C 0.0
5 B D 0.0
6 C A 0.8
7 C B 0.0
8 C D 0.2
9 D A 0.0
10 D B 0.0
11 D C 1.0

关于python - 如何从 Python 中的邻接矩阵创建边列表数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218455/

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