构建数据集 data.csv
读取文件 转换为dataframe后 遍历存储
代码如下:
import pandas as pd
from py2neo import Graph, Node, Relationship
from config import neo4j_uri, neo4j_username, neo4j_password
# 清除Neo4j数据库中的所有节点和关系
def clear_neo4j_database(graph):
graph.run("MATCH (n) DETACH DELETE n")
def csv_to_neo4j(csv_file, encoding='utf-8'):
# 读取CSV文件
df = pd.read_csv(csv_file, encoding=encoding)
# 连接到Neo4j数据库
graph = Graph(neo4j_uri, auth=(neo4j_username, neo4j_password))
# 清除!
clear_neo4j_database(graph)
# 获取CSV文件的列名
columns = df.columns.tolist()
# 遍历CSV文件中的每一行,添加节点和关系到图中
for index, row in df.iterrows():
# 创建或获取每一列的节点
nodes = []
for col in columns:
node = Node(col, name=row[col])
graph.merge(node, col, "name")
nodes.append(node)
# 根据列名创建关系
for i in range(len(nodes) - 1):
re = Relationship(nodes[0], f"has_{columns[i + 1]}", nodes[i + 1])
graph.merge(re)
if __name__ == '__main__':
# 使用示例
csv_file = 'data.csv'
csv_to_neo4j(csv_file)