Чтобы соединить узлы на основе Id
, вот один из подходов: вы можете группировать Id
, объединять группы в списки и строить ориентированный граф, добавляя списки в виде путей:
df = pd.read_csv('my_file.csv', sep=', ')
l = df.groupby('Id').Tag.agg(list).tolist()
# [['science', 'history'], ['sports'], ['sci-fi', 'history', 'music']]
G=nx.Graph()
for sl in l:
nx.add_path(G, sl)
nx.draw(G, node_color='lightblue',
with_labels=True,
node_size=800)
Для ориентированного графа:
G=nx.DiGraph()
for sl in l:
nx.add_path(G, sl)
nx.draw(G, node_color='lightblue',
with_labels=True,
node_size=800)