Сетевой генератор в networkx из существующих узлов - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь создать социальную сеть в сети.Для этого я хочу использовать сетевой генератор barabasi_albert_graph.Я хочу иметь возможность генерировать узлы отдельно в пандах, чтобы я мог дать им определенные атрибуты, но затем генератор должен создать ребра на основе преимущественного присоединения.Это возможно?

Документация для генератора просто объясняет, как генерировать, основываясь на количестве узлов и ребер, вот так

G = nx.barabasi_albert_graph(600, 2, seed=None)

Документация для from_pandas_dataframe просто показывает, как создать граф из кадра данных с ребрамиуже так

G =nx.from_pandas_dataframe(df2, 'nodes', 'edges', ['attributes'])

В более исследовательском, а не "этот код не работает", мне нужно что-то вроде

G = nx.barabasi_albert_graph.from_pandas_dataframe()

Цель этого состоит в том, чтобы создать модельорганизационная сеть связи.Мне нужно, чтобы узлы имели атрибуты иерархии (отдел, должность, зарплата), но ребра создавались с использованием преимущественного вложения.

1 Ответ

0 голосов
/ 03 октября 2018

Хорошо, я думаю, что знаю, что вы хотите.Во-первых, я думаю, что нет таких функций, как nx.barabasi_albert_graph.from_pandas_dataframe(), потому что это просто генератор для особых нужд.

Если вы действительно хотите это сделать, я рекомендую использовать API networx для добавления атрибутов в сгенерированный граф. (Это также некоторые заметки, которые вы должны знать. nx.from_pandas_dataframe устарел в последней версии networkx.)

Так же, как

G.nodes[1]['room'] = 714

Исходя из исходного кода barabasi_albert_graph, он также просто случайным образом генерирует список узлов и добавляет некоторые ребра после преференциального вложения .

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

...