来自 pandas 的 Networkx 图,节点的边不连接其他节点和节点没有边

Networkx graph from pandas with nodes with edges that don't connect other nodes and nodes with no edges

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

Source Payload Target
Alpha foo Bravo
Bravo bar Charlie
cat Delta
Echo dog Alpha
Foxtrot hat

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

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 成为断开连接的节点。我也希望边缘用有效载荷标记,但这是一个很好的选择。

您可以使用

从图中删除空字符串节点

G.remove_node('')

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

现在节点 DeltaFoxtrot 已断开连接。