2017-10-24 2 views
0

私は2つの列を持つデータセットを持っており、それぞれが事故の参加者(名前、姓)を表しています。そこで、このデータからグラフを作成しました。今度は、各参加者のエッジ数、つまり他の人が何回事故を起こしたかをカウントする必要があります。単一ノードのエッジを数えるには?

私はこれに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)) 

私は間違っていますか?

+0

のために使用することができます。 – voiDnyx

+0

多分それは単に正しいです。ここでは、参加者が特定の他の事故を起こした回数を数えます。人のペアは、複数の事故に一緒に関与することになっていますか?私は事故の種類を知らないが、現実の車の事故でそれは起こりそうもない。 – JulienD

+0

@voiDnyx建設コードを追加しました。 – Bootuz

答えて

2

あなたのコードはあなたが思っていることをしていません。参加者(i)が特定の他の1つ(j)の事故に遭遇した回数をカウントしています。

各参加者に必要な場合は、 と事故の任意他の参加者は、あなたがいただきました!間違って言って、そのことはできないGのためのあなたの建設コードなしでインスタンス

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

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