数据框中的节点和边缘列以构建网络
Nodes and edges columns in dataframe to build a network
我在视觉上重现以下数据时遇到困难:
Nodes Edges
0 342 [342]
1 7564 [7564]
2 21 [21]
3 43 [43, 24,4346]
4 4346 [4346,43]
... ... ...
74 24 [24,43]
该数据集包括节点和节点间边的信息。具体来说,在括号中有一个节点和另一个节点(或它本身)之间的边。
例如:
节点43
与自身有3条边,分别是节点24
和节点4346
。节点24
只有两条边,一条与自身有关,另一条与节点43
有关;节点 4346
相同。节点342
、节点7564
和节点21
只有自己的边。
我想要一个 chart/network 可以显示这些关系。
不幸的是,我无法使用括号内的信息(在 pandas 列中)创建边,只能使用节点。我正在使用 Networkx。我希望你能帮助我并解释我如何在考虑边列中描述的关系的情况下在节点之间创建链接。
谢谢
我们首先需要 explode
列表列,然后使用 networkx
创建网络
import networkx as nx
df = df.explode('Edges')
G = nx.from_pandas_edgelist(df, 'Nodes', 'Edges')
我在视觉上重现以下数据时遇到困难:
Nodes Edges
0 342 [342]
1 7564 [7564]
2 21 [21]
3 43 [43, 24,4346]
4 4346 [4346,43]
... ... ...
74 24 [24,43]
该数据集包括节点和节点间边的信息。具体来说,在括号中有一个节点和另一个节点(或它本身)之间的边。 例如:
节点43
与自身有3条边,分别是节点24
和节点4346
。节点24
只有两条边,一条与自身有关,另一条与节点43
有关;节点 4346
相同。节点342
、节点7564
和节点21
只有自己的边。
我想要一个 chart/network 可以显示这些关系。
不幸的是,我无法使用括号内的信息(在 pandas 列中)创建边,只能使用节点。我正在使用 Networkx。我希望你能帮助我并解释我如何在考虑边列中描述的关系的情况下在节点之间创建链接。
谢谢
我们首先需要 explode
列表列,然后使用 networkx
import networkx as nx
df = df.explode('Edges')
G = nx.from_pandas_edgelist(df, 'Nodes', 'Edges')