Networkx用from_pandas_edgelist构建无向图报KeyError: 'source'问题咨询
问题解答
必须指定source和target参数吗?
是的,这是必须的。NetworkX的from_pandas_edgelist函数默认会查找DataFrame中名为'source'和'target'的列作为边的两端节点,你的数据列名是topic和neighbor,不符合默认规则,所以会抛出KeyError。哪怕是无向图,也得明确告诉函数哪两列对应边的两个端点——无向图只是不区分边的方向,不是不需要定义边的节点对。指定source和target会影响degree_centrality的计算结果吗?
完全不会。无向图里的边是双向的,degree_centrality计算的是每个节点的连接边数占总可能边数的比例。不管你把topic设为source、neighbor设为target,还是反过来,最终生成的无向图结构完全一致,每个节点的度数也不会有任何变化,因此中心度计算结果完全相同。
比如你数据里K和Kl的边,不管source和target怎么指定,在无向图里都是同一条双向边,K和Kl的度数都会各加1,对中心度计算没有影响。另外你数据里的Pr自环边,不管参数怎么设置,NetworkX都会按无向图自环的规则处理(节点度数加2),也不会影响结果。
内容的提问来源于stack exchange,提问作者noahjb
相关产品推荐
相关产品推荐

