Я думаю, сетевая визуализация удовлетворяет вашим потребностям.
Сначала я определяю игрушечный фрейм данных
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame([["IP112", "IP2"],
["IP11", "IP2"],
["IP13", "IP2"],
["IP12", "IP24"],
["IP111", "IP24"],
["IP14", "IP205"],
["IP12", "IP2"],
["IP13", "IP205"]], columns=["Source", "Destination"])
Теперь, используя знаменитую библиотеку networkx
для таких визуализаций:
G = nx.Graph()
G.add_nodes_from(df.Source.unique()) # add 'Source' nodes
G.add_nodes_from(df.Destination.unique()) # add 'Destination' nodes
G.add_edges_from(df.values) # add all edges
nx.draw(G, with_labels=True)
plt.show()
Отображает: