【发布时间】:2019-09-12 07:49:45
【问题描述】:
我是使用 Networkx 的新手,并且是为 python 做的。我正在尝试从 csv 文件计算节点(约 14K)的度中心性 - 第一列是源,第二列是目标。这是一个示例(这些是各个经理的 ID):
Source Target
4890 12842691
4890 26682663
4890 59694886
4890 79419501
5280 389911360
5280 393411529
5280 395211613
5280 395511628
5280 395811643
5280 396011651
6000 300556269
6000 315027716
6000 315037716
6000 341189880
6000 341909932
6000 341919932
我尝试了以下代码:
import networkx as nx
import pandas as pd
data = pd.read_csv('man_edge.csv')
FG = nx.from_pandas_edgelist(data, source='Source', target='Target')
FG.nodes()
然后我尝试计算度中心性:
degree_dict=nx.degree_centrality(FG)
代码计算 ID 4890、5280 和 6000 的度中心性。但它也计算第二列中 ID 的度中心性,这是我不想要的。
示例:
ID degree_dict
4890 0.526490066
5280 0.215231788
6000 0.251655629
473931 0.003311258
2219536 0.003311258
8053083 0.003311258
12842691 0.003311258
13213108 0.003311258
如何仅计算第 1 列中的 ID 而不是第 2 列中的 ID 的度中心性?提前感谢您的帮助。
【问题讨论】:
-
您的网络是否应该被定向?我的印象是应该的。在这种情况下,有一些命令将返回入度中心性和出度中心性,这将起作用。但首先,您必须采取措施让 networkx 知道网络是定向的。