2017-02-01 19 views
0

私は、相互作用するノードとして割り当てられた2つの列を持つCSVファイルを持っています。このファイルをPythonで呼び出してグラフを作成し、各ノード。グラフと平均次数を作成するためのPythonのCSVファイル

enter image description here

+5

ちょっと待って、より多くの努力:データ、詳細を提供し、あなたがこれまでにやった私たちを見ます。 – gregory

答えて

0

次回少なくともテキスト形式でデータを置く:

私のデータは次のように見えます。

ここに私が使用したデータがあります。 I以下のコードで

column1 column2 
abc  def 
abc  ghi 
jkl  <empty> 

csvパッケージにファイルsome_data.csvをお読みください。 csv.readerコマンドでデリミタをdelimiter=' 'に設定しました。 同じコマンドでは、余分なスペースを無視するためにskipinitialspace=Trueを使用しました。

両方のノードが存在する場合、私はadd_edgeでグラフにエッジを追加します。それ以外の場合は、最初のノードをadd_nodeで追加します。 elifを追加して、最初のノードが<empty>かどうかをテストできます。

import networkx as nx 
import csv 

G = nx.Graph() 

with open('some_data.csv') as csvfile: 
     csv_reader = csv.reader(csvfile, delimiter=' ', skipinitialspace=True) 
     next(csv_reader, None) # skip header 
     for row in csv_reader: 
      # check if second node is empty 
      if row[1] == '<empty>': 
       G.add_node(row[0]) 
      # else assume both nodes are present 
      else: 
       G.add_edge(row[0], row[1]) 

nodesで個々のノードを取得できます。 度を取得するにはdegreeを使用できます。

for node in G.nodes(): 
    print(node, 'has a degree of', G.degree(node)) 

出力:必要

jkl has a degree of 0 
def has a degree of 1 
ghi has a degree of 1 
abc has a degree of 2 
関連する問題