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