首页 > 解决方案 > 来自 pandas 的 Networkx 图,其中的节点具有不连接其他节点的边和没有边的节点

问题描述

我正在开发一个显示系统之间数据流的网络图。网络仍在构建中,但目标是可视化数据流。在下面的示例中,您可以看到 Source system、Target system 和 Payload 项。空值是有目的的,因为部分网络仍在建设中。我希望能够捕获断开连接的节点(即源系统 Charlie)和不完整的数据流(即源系统 Foxtrot 和目标系统 Delta)。

来源 有效载荷 目标
Α 布拉沃
布拉沃 酒吧 查理
三角洲
回声 Α
狐步舞 帽子

到目前为止,我开发的内容为空字符串创建了一个节点。示例代码

df = pd.read_csv('X.csv',keep_default_na=False)

G = nx.from_pandas_edgelist(df=df, source='SOURCE',target='TARGET', edge_attr=True, create_using=nx.MultiDiGraph())

nx.draw(G, with_labels=True)
plt.show()

当前网络图输出

我希望 Delta 和 Foxtrot 成为断开连接的节点。我还希望边缘被标记为有效负载,但这是一个很好的选择。

标签: pythonpandasnetworkx

解决方案


您可以使用从图中删除空字符串节点

G.remove_node('')

这也会从空字符串节点中删除边。

现在节点DeltaFoxtrot断开连接。

在此处输入图像描述


推荐阅读