使用py2neo从Neo4j数据库执行cypher查询并在pandas dataframe上获取结果非常简单,代码如下:
>>> from pandas import DataFrame
>>> DataFrame(graph.data("MATCH (a:Person) RETURN a.name, a.born LIMIT 4"))
a.born a.name
0 1964 Keanu Reeves
1 1967 Carrie-Anne Moss
2 1961 Laurence Fishburne
3 1960 Hugo Weaving
现在我正在尝试使用 py2neo 将一个 Pandas 数据帧中的一组节点和关系创建(或更好地合并)到 Neo4j 数据库中。假设我有一个像下面这样的数据帧:
LABEL1 LABEL2
p1 n1
p2 n1
p3 n2
p4 n2
标签是列标题,属性是值。我想要复制以下Cypher查询(以第一行为例),对于数据框中的每一行都执行:
标签是列标题,属性是值。我想要复制以下Cypher查询(以第一行为例),对于数据框中的每一行都执行:
query="""
MATCH (a:Label1 {property:p1))
MERGE (a)-[r:R_TYPE]->(b:Label2 {property:n1))
"""
我知道可以直接告诉py2neo只运行graph.run(query)
,或者以同样的方式运行LOAD CSV
Cypher脚本,但我想知道是否可以在py2neo中逐行迭代数据框并应用上述查询。