2017-02-21 4 views
0

これは私が非常に単純な質問であると信じているものです。私は(少し下にスクロール)このページのグラフを再作成しようとしています:py2neoを使用してCSVファイルからグラフを作成するための適切な構文

https://linkurio.us/visualizing-network-donald-trump/

あり、このページのグラフを作成するためのコードですが、私はpy2neo相当を使用しようとしています。私は、以下のコードに似た構文を使ってNetworkXでこれらの同じグラフを作成しましたが、以下のコードは全く異なるものを生成しています。私の希望は、CSVファイルから適切なpy2neo形式で適切なグラフを作成するコードを取得することです。私は答えを探しており、私はこのリンクを既に見直しており、私が従うかどうかはわからないことに注意してください。Creating neo4j graph database from csv file using py2neo

以下のコードは正常に動作します(py2neoとNeo4j(CE)の最新版を使用しています)。私はシンプルなコード(ジェネレータ、リスト内包など)が好きではないかもしれませんが、私が得ることができるものはすべて取るでしょう。ちょうど私はCSVファイルを読んで、 "Organization"、 "Person"、 "Connection"という列を読み、これらの値を使って上記のリンクのような接続を示すグラフを作成しています。ありがとうございました!私が使用しています

コード:

def readCSV_forNeo4j_Trump(path): 
    with open(path + '/Trump/TrumpWorldData_Person-Org.csv', ncoding='utf8') as csvfile: 
     reader = csv.DictReader(csvfile) 
     for row in reader: 
      Organization = row['Organization'] 
      Person = row['Person'] 
      Connection = row['Connection'] 
      Person_Node = Node("Person", name=Person) 
      graph.create(Person_Node) 
      Org_Node = Node("Organization", name=Organization) 
      graph.create(Org_Node) 
      Person_Org = Relationship(Person_Node, Connection, Org_Node) 
      graph.create(Person_Org) 

答えて

1

あなたはpy2neoからCYPHERを使用することができます。

def readCSV_forNeo4j_Trump(path): 
    with open(path + '/Trump/TrumpWorldData_Person-Org.csv', ncoding='utf8') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     Organization = row['Organization'] 
     Person = row['Person'] 
     Connection = row['Connection'] 
     graph.run("MERGE (p:Person{name:{name}}) 
     MERGE (o:Organization{name:{organization}}) 
     CREATE (p)-[:IS_CONNECTED{type:{relationship}}]->(o)", 
     name=Person, organization=Organization , relationship = Connection) 

私は頭の上のクエリを書いています...あなたは指示からサイファーをコピーしてpy2neoから実行できます。

+0

ありがとう、トマズ、そのトリックをしました。 py2neo 3にはサイファーコンストラクタがありません。 cypher = graph.cypherを使用するのではなく、cypher.execute(py2neo 2と同様に)は単にgraph.run()を呼び出します(Cypherオブジェクトをインスタンス化する必要はありません)。ありがとうございました! – starconsult

+0

ありがとうございます。私はgraph.schema.create_indexを試しましたが、それは違いがないようです。 –

関連する問題