如何计算单个节点的边缘?

时间:2017-10-24 12:44:44

标签: python graph networkx

我有一个包含两列的数据集,每列代表事故的参与者(姓名,姓氏)。所以我根据这些数据制作了一个图表,现​​在我需要计算每个参与者的边数,即一个人与其他人发生意外的次数。

我为此使用networkx lib,它有.number_of_edges()方法,但每个参与者的数量为1。

df = pd.read_excel('выборка.xlsx', index_col='№ страхового события')
df.columns = ['part_1', 'part_2']
G=nx.from_pandas_dataframe(df, 'part_1', 'part_2')

for i in G:
    for j in G:
        if G.number_of_edges(j, i) > 0:
            print(G.number_of_edges(j, i))

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您的代码没有按照您的想法执行。您正在计算参与者(i)与特定其他人(j)发生事故的次数(可能是1)。

如果您想要每个参与者,任何其他参与者发生意外的次数,您可以使用

for i in G:
    print(len(G.edges(i)))

https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.DiGraph.edges.html#edges