networkx:有向图计算任意边的度量

时间:2019-08-14 08:43:40

标签: python pandas networkx

我有以下结构和长度的(定向)边缘列表:

        project  donor
0       10061    119679
1       10079    120231
2       10102    121147
...
428     11456    120231

然后,我使用以下脚本来计算度量:

import networkx as nx

G = nx.from_pandas_edgelist(fundedby, source='donor', target='project', create_using=nx.DiGraph())
data = pd.DataFrame(dict(
          Degree                 = dict(G.degree),
          In_Degree              = dict(G.in_degree),
          Out_Degree             = dict(G.out_degree)
)) 

但是,我的最终表不仅计算“项目”中项目的度量,而且还计算“捐助者”(注意:没有通用编号/标识):

        Degree  In_Degree   Out_Degree
10061   17      17          0
10062   5       5           0
10063   7       7           0
...
120231  2       0           2
120232  1       0           1
119679  1       0           1

我只想基于 project 计算网络度量。如何只显示与项目相关的措施,或者仅显示与捐助者相关的措施? networkx中是否有功能,还是我必须通过id手动选择?

1 个答案:

答案 0 :(得分:1)

您正在计算的指标(节点度数)在计算上并不昂贵,所以我要做的是像您一样计算所有指标,然后按如下所示手动对输出数据进行子集化:

var _price : [Int] = []
var prices: [Int] = []