Социальный граф: данные от Pandas к графу Networkx - PullRequest
0 голосов
/ 06 июля 2018

У меня есть набор данных, который содержит пользователя и каждого его друга. Формат аналогичен приведенному ниже, где есть поле user_id и поле friend_id, содержащие соответствующие идентификаторы каждого друга.

user_id | friend_id
   A          B
   A          C
   B          A
   B          G

Я стремлюсь получить неориентированный график, показывающий грань между каждым пользователем и каждым другом, которого они имеют, как показано ниже.

A - B - G
|
C

Мне трудно выяснить, как связать pandas с networkx или graphviz и другими ресурсами, которые расширяются при создании социального графа из табличных данных.

1 Ответ

0 голосов
/ 06 июля 2018

В качестве примера здесь показан способ отображения ненаправленного сетевого графика с использованием networkx, pandas и matplotlib.

Код:

import matplotlib.pyplot as plt
import networkx as nx

# store pairs to a list of tuples
tuples = [tuple(x) for x in df.values]

# set up a graph and show it
G = nx.DiGraph()
G.add_edges_from(tuples)
nx.draw_networkx(G)
plt.xticks([], [])
plt.yticks([], [])
plt.show()

Вывод:

enter image description here

...