Социальный граф: данные от Pandas к графу Networkx

1

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

user_id | friend_id
   A          B
   A          C
   B          A
   B          G

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

A - B - G
|
C

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

  • 0
    Зачем вам нужно делать это прямо из панд? Вы можете перебирать записи и создавать соответствующие узлы и ребра.
  • 0
    shhh @black еще не закончил свой тест
Теги:
pandas
graphviz
networkx

1 ответ

1
Лучший ответ

В качестве примера здесь показан способ отображения неориентированного сетевого графика с использованием 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()

Выход:

Изображение 174551

  • 0
    удалось очистить ваш ответ для моего варианта использования. Пришлось немного больше networkX документы по networkX и получить то, что я хотел. Спасибо за вашу помощь в получении стартового кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню