Подходит ли Dataframe для представления графа? - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу представить отношения между узлами в python, используя pandas .DataFrame. И каждое отношение имеет вес, поэтому я использовал фрейм данных следующим образом.

       nodeA nodeB nodeC
nodeA    0     5     1
nodeB    5     0     4   
nodeC    1     4     0

Но я думаю, что это неправильный способ express отношения, потому что фрейм данных симметричен c, имеет дублированные данные.

Есть ли более правильный способ, чем использование фрейма данных для представления графа в python?

(извините за мой плохой английский sh)

1 Ответ

0 голосов
/ 08 апреля 2020

Это кажется приемлемым способом представления графа и фактически совместимо, скажем, с nextworkx. Например, вы можете восстановить объект графа nextworkx следующим образом:

import networkx as nx
g = nx.from_pandas_adjacency(df)

print(g.edges)
# [('nodeA', 'nodeB'), ('nodeA', 'nodeC'), ('nodeB', 'nodeC')]
print(g.get_edge_data('nodeA', 'nodeB'))
# {'weight': 5}

Если ваш график разрежен, вы можете вместо этого сохранить его в виде списка ребер, например, как обсуждалось здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...