通过例子详细介绍windows下如何往neo4j中导入数据(Load_csv、import)

前言

  1. 针对人群
    初步接触neo4j的小白
  2. 操作系统
    Windows
  3. 数据导入方法
    1) load_csv 语句,适合初始化导入或增量更新;
    优点:可以实时插入,可加载本地、远程csv ;缺点:速度慢,不能动态传label,relationship
    2) neo4j-import,适合海量数据的初始化;
    优点:速度快;缺点:需要停止neo4j服务器,清库。
  4. 本文思维导图
    在这里插入图片描述

一、数据

1.1 原始数据

import pandas as pd 
path="D:\\ProgramData\\Neo4j\\neo4j-community-3.4.8\\import\\"# neo4j 数据导入的根目录
data=pd.read_csv(path+"data.csv")

在这里插入图片描述

1.2 根据数据内容进行节点设计

  • 节点:以人为节点,节点/人;
  • 节点属性:name, card, phone, IP ,…
  • 节点标签:节点标签可以设置一个或多个,这里每个节点有两个标签 label1 和label2 (例如label为借款人或联系人,label2
    为黑名单标签,good或bad)
  • 关系:为了简单些,直接按照属性是否相等建立关系属性
    ,如name_equal,card_equal,phone_equal,IP_equal,可以根据数据和业务需求建立
  • 关系属性:可以为关系添加属性,比如IP_equal关系下添加共同的IP

二、 load_csv方法

2.1 节点导入

2.1.1 节点数据

因为load_csb不能动态传入节点和关系的标签,故需要按照节点标签、关系标签来分成不同csv.

# 按照节点标签建立对应csv,并保存
data_label=[]
list_label=[("borrower","good"),("borrower","bad"),("contacter","good"),("contacter","bad")]
for label1,label2 in list_label:
    data_label.append(data[data["label1"]==label1][data[data["label1"]==label1]["label2"]==label2])

# 保存data_label
i=1
for data_label in data_label:
    data_label.to_csv(path+"data"+str(i)+"_label.csv",index=False)
    i+=1

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
使用 Neo4jLOAD CSV 导入功能可以更有效地导入大量数据。以下是一个使用 LOAD CSV 导入数据的示例代码: 首先,假设你有一个名为 `hz_relation.csv` 的 CSV 文件,其包含了节点和关系的信息,例如: ``` start_node,end_node,relationship_type A,B,KNOWS B,C,FRIEND_OF C,D,WORKS_WITH ``` 然后,你可以使用以下的 Cypher 查询语句从 CSV 文件导入数据: ``` USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///hz_relation.csv" AS row MERGE (start:Node {name: row.start_node}) MERGE (end:Node {name: row.end_node}) MERGE (start)-[:RELATIONSHIP_TYPE]->(end) ``` 这个查询语句将 CSV 文件的每一行都导入为一个节点和一条关系。`USING PERIODIC COMMIT` 用于在导入大量数据时将事务拆分为更小的批次,以防止内存使用过度。 在这个查询语句,我们使用 `LOAD CSV WITH HEADERS` 从 CSV 文件加载数据,并将每一行作为一个名为 `row` 的映射。然后,我们使用 `MERGE` 命令创建每个节点,并使用 `MERGE` 命令创建每条关系。在这个例子,我们使用 `relationship_type` 列的值作为关系的类型。 最后,你可以使用以下的 Python 代码来运行这个 Cypher 查询语句: ```python from neo4j import GraphDatabase uri = "bolt://localhost:7687" username = "neo4j" password = "password" driver = GraphDatabase.driver(uri, auth=(username, password)) with driver.session() as session: session.run(""" USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///hz_relation.csv" AS row MERGE (start:Node {name: row.start_node}) MERGE (end:Node {name: row.end_node}) MERGE (start)-[:RELATIONSHIP_TYPE]->(end) """) ``` 这个代码将会在 Neo4j 数据创建节点和关系,并将它们导入到你的图。请确保你已经安装了 Py2neo 来运行以上代码。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值