如何将图(NetworkX)节点的属性输出到数据帧(Pandas)

2024-07-07 08:29:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与网络合作,作为西班牙戏剧中角色之间互动的图表。这里有一个视觉化:

Network of Bodas de Sangre, by Lorca

我将节点的几个属性(字符)作为一个数据帧传递给网络,以便我可以使用这些值(例如,节点的颜色由字符的性别设置)。我想用NetworkX计算每个节点的不同值(度、中心度、中间度…);然后,我想将节点的属性和用NetworkX计算的值都输出为数据帧。我知道我可以要求节点的特定属性,例如:

nx.get_node_attributes(graph,'degree')

我可以用它来构建一个数据帧,但我想知道是否还有更优雅的解决方案。我也尝试过:

^{pr2}$

但这只输出边,而不输出有关节点的信息。在

那么,有什么帮助吗?谢谢!在


Tags: 数据网络networkx角色get属性节点颜色
1条回答
网友
1楼 · 发布于 2024-07-07 08:29:39

如果我正确地理解了您的问题,您需要一个包含节点和每个节点的一些属性的DataFrame。在

G = nx.Graph()
G.add_node(1, {'x': 11, 'y': 111})
G.add_node(2, {'x': 22, 'y': 222})

您可以按如下方式使用list comprehension来获取特定的节点属性:

^{pr2}$

或者,如果有许多属性,而您需要所有这些属性,则这可能是一个更好的解决方案:

pd.DataFrame([i[1] for i in G.nodes(data=True)], index=[i[0] for i in G.nodes(data=True)])

相关问题 更多 >