簡體   English   中英

如何在 Neo4j 中的兩個不同列之間創建關系

[英]How to Create Relationship between two Different Column in Neo4j

我正在嘗試在Neo4j中的兩列之間建立關系 我的數據集是一個CSV 文件兩列是指共同作者,我想構建一個網絡。 我已經加載數據,返回並匹配它們。

正在加載

load csv from 'file:///conet1.csv' as rec

返回數據

create (:Guys {source: rec[0], target: rec[1]})

現在我需要通過在源列和目標列之間建立關系構建數據協作網絡 您對此有何建議?

我能夠在 python 中 NetworkX 圖形庫中提到的列之間建立關系,如下所示:

import pandas as pd
import networkx as nx
g = nx.Graph()
df = pd.read_excel('Colab.csv', columns= ['source', 'target'])
g = nx.from_pandas_edgelist(df,'source','target', 'weight')

如果我了解您的用例,我認為您不應該僅僅為了存儲關系信息而創建Guys節點。 相反,面向圖的方法是為每個作者創建一個Author節點,並在共同作者之間創建一個關系(例如COLLABORATED_WITH類型)。

這可能對你有用,或者至少給你一個線索:

LOAD CSV FROM 'file:///conet1.csv' AS rec
MERGE (source:Author {id: rec[0]})
MERGE (target:Author {id: rec[1]})
CREATE (source)-[:COLLABORATED_WITH]->(target)

如果可以重新創建相同的關系,則應將CREATE替換為更昂貴的MERGE 此外,一部作品可以有任意數量的共同作者,因此根據您要做什么,每一對之間的關系可能不是最佳的; 但這是一個單獨的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM