来自现有节点的 networkx 中的网络生成器

Network Generator in networkx from existing nodes

我正在尝试在 networkx 中生成一个社交网络。为此,我想使用 barabasi_albert_graph 网络生成器。我希望能够在 pandas 中单独生成节点,这样我就可以给它们特定的属性,然后让生成器根据优先连接创建边。这可能吗?

生成器的文档只是解释了如何像这样基于节点和边的数量生成

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

from_pandas_dataframe 的文档仅展示了如何从边缘已经如此的数据框创建图形

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

比 "this code doesnt work" 更探索性的方式,我需要类似

的东西
G = nx.barabasi_albert_graph.from_pandas_dataframe()

这样做的目的是生成组织通信网络模型。我需要节点具有层次结构的属性(部门、职位、薪水),但要使用优先连接创建边。

好的,我想我知道你想要什么。 首先,我认为没有像 nx.barabasi_albert_graph.from_pandas_dataframe() 这样的函数,因为它只是一个简单的生成器,用于满足某些特殊需要。

如果您真的想这样做,我建议您可以使用 networx 的 API 将属性添加到生成的图形中。 (还有一些你应该知道的注意事项。nx.from_pandas_dataframe在最新的networkx版本中已经过时了。)

喜欢

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

barabasi_albert_graph的源代码来看,它也只是随机生成一个节点列表并在优先附件之后附加一些边。

如果您对如何将数据帧中的属性添加到现有图表方面仍有一些问题,您可以在此答案下发表评论。