gpt4 book ai didi

python - Neo4j 导入 csv,并在列中拆分值

转载 作者:行者123 更新时间:2023-12-01 06:40:02 24 4
gpt4 key购买 nike

我想将以下数据保存到neo4j数据库中。 “friends”列是一串用“,”分隔的 id。因此,应该有 10 个节点(id 为 1-10),其中我只知道其中 5 个节点的年龄。我想在每个ID和他们的 friend 之间建立关系。

示例数据框

id age friends
1 10 "3,2"
2 20 "1,6"
3 15 "4,5,10"
4 13 "2,8,9"
5 25 "1,4,7"

我使用的代码是

LOAD CSV WITH HEADERS FROM 'file:///df.csv' AS line
MERGE (User {id: line.id, age: line.age})

LOAD CSV WITH HEADERS FROM 'file:///df.csv' AS line
UNWIND split(line.friends, ',') AS friends
MERGE (u:User {id: friends})

LOAD CSV WITH HEADERS FROM 'file:///df.csv' AS line
UNWIND split(line.friends, ',') AS friends
With line, friends
MERGE (User1{id: line.id})-[:FRIENDS]->(User2{id: friends})

这是正确的方法吗?以及如何简化代码?

最佳答案

foreach 应该可以做到:

LOAD CSV WITH HEADERS FROM 'file:///df.csv' AS line
MERGE (u:User {id: line.id}) SET u.age=toInteger(line.age)
WITH u,line,split(line.friends, ',') AS friends
FOREACH (f in friends | merge (friend:User {id: f}) merge (u)-[:FRIENDS]->(friend))

所有值都是字符串,因此您需要根据需要转换为其他数据类型(请参阅年龄)。

关于python - Neo4j 导入 csv,并在列中拆分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com