networkx:有向图计算任何edg的度量

2024-05-17 18:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个(定向)边列表,其结构和长度如下:

        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)
)) 

但是,我的最后一个表不仅计算“project”中项目的度量值,还计算“捐赠者”(注意:没有公共编号/id):

        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

我只喜欢在项目基础上计算网络度量。如何只显示与项目相关的度量值,或仅显示与捐赠者相关的度量值?networkx中是否有函数,或者必须通过id手动选择?你知道吗


Tags: 项目innetworkxprojectid列表度量out
1条回答
网友
1楼 · 发布于 2024-05-17 18:33:35

您正在计算的度量(节点度)在计算上并不昂贵,因此我要做的是像您一样计算所有这些度量,然后手动将输出数据子集化,如下所示:

data.loc[fundedby.project.unique()] 

相关问题 更多 >