neo4j用python导入Excel数据的方法

这篇具有很好参考价值的文章主要介绍了neo4j用python导入Excel数据的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

neo4j的下载

neo4j的介绍

neo4j简介

neo4j样本项目介绍

neo4j修改密码

连接GraphXR

用Python往neo4j导入Excel数据

代码部分

 关于创建结点:

关于创建关系:

结束


neo4j的下载

neo4j下载网址:Neo4j Download Center - Graph Database & Analytics

neo4j导入excel,neo4j,数据库,python,知识图谱

点击红框内的Download Neo4j Desktop

neo4j导入excel,neo4j,数据库,python,知识图谱

填写信息后点击Download Desktop,即可下载安装包

安装步骤较为简单,此处省略

neo4j的介绍

neo4j简介

neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。

neo4j样本项目介绍

红框内的代表Projects,里面包含了所有的项目文件,刚下载好neo4j后,neo4j会给一个样本项目(Example Project),这个项目里的图数据库存储的是美国电影和影视演员之间的知识图谱关系:

neo4j导入excel,neo4j,数据库,python,知识图谱

 neo4j导入excel,neo4j,数据库,python,知识图谱

neo4j修改密码

这个是图数据库的操作页面,其中比较重要的是下图红框内的内容,我们在以后的连接python和GraphXR时需要用到bolt连接、用户名neo4j和密码,密码的话修改过程如下:

先点击第一个红框的空白处,就会弹出图数据库的详细信息,然后里面有重新设置密码的地方,输入密码点击Apply就行,这里我设置的是123456789

neo4j导入excel,neo4j,数据库,python,知识图谱

我们点击start启动图数据库

neo4j导入excel,neo4j,数据库,python,知识图谱

点击Open打开 

neo4j导入excel,neo4j,数据库,python,知识图谱

弹出这个页面:

neo4j导入excel,neo4j,数据库,python,知识图谱

 红框里的就是用于连接的bolt连接和用户名neo4j,密码我们之前已经修改为了123456789

连接GraphXR

neo4j数据库查看数据:

neo4j导入excel,neo4j,数据库,python,知识图谱

红框标注的三个都可以点击,点击Movie就是查看Movie类的结点,Person就是Person类的结点,*169是不论类别的结点, 我们点击查看时图中限制了大小(LIMIT 25),指的是查看25个结点的关系图谱,我们可以更改LIMIT后面的值,也可以直接删除LIMIT:

neo4j导入excel,neo4j,数据库,python,知识图谱

如果查看的数据量很大会造成neo4j卡顿,我推荐用GraphXR来进行查看

网址:上海图客科技有限公司

neo4j导入excel,neo4j,数据库,python,知识图谱

点击GraphXR试用,因为我已经注册过账号,所以可以直接进入,新人第一次点击试用后可以注册账号,然后免费试用,试用时间没说多少天......

neo4j导入excel,neo4j,数据库,python,知识图谱

 我们点击新建:

neo4j导入excel,neo4j,数据库,python,知识图谱

项目名称可以自己填,然后勾选配置neo4j实例,主机填localhost,端口就是7687,用户名就是neo4j,密码我们设置的是123456789,点击确认就行。(注意连接neo4j时neo4j的数据库要保持开着的状态,不能关了) 

neo4j导入excel,neo4j,数据库,python,知识图谱

 按照上图操作,点击提取所有:

neo4j导入excel,neo4j,数据库,python,知识图谱

其中类别和关系是主要的两个提取操作,我们可以都提取出来查看(如上图):

用Python往neo4j导入Excel数据

我们可以把Excel文件和python文件放在一个文件夹里(便于提取和操作):

neo4j导入excel,neo4j,数据库,python,知识图谱

 其中我把Excel文件转换成了csv文件,一个是python对csv文件提取和操作都更快,另一个是我在操作Excel文件时会有一些编码错误,所以我用csv文件来导入数据

代码部分

下面是test1.py的代码:

from py2neo import Graph, Node, Relationship
import csv

g = Graph("bolt://localhost:7687", user="neo4j", password="123456789", name="neo4j") # 连接数据库

reader = csv.reader(open('kg-table-data.csv', 'r', encoding='utf-8'))   # 读取csv文件
reader1 = csv.reader(open('kg-table-data-1.csv', 'r', encoding='utf-8'))  # 读取csv文件

for item in reader: # 读取每一行
    if reader.line_num == 1:    # 去除第一行
        continue   
    print("当前行数:", reader.line_num, "当前行内容:", item) # 打印当前行数和当前行内容

    # 创建起始节点,并添加属性
    start_node = Node('Company', name=item[0])  # 创建节点
    start_node['role'] = '竞买方'   # 添加属性
    g.merge(start_node, 'Company', 'name')   # 以name属性为主键,如果存在则更新,不存在则创建

    # 创建结束节点,并添加属性
    end_node = Node('Company', name=item[4])    # 创建节点
    end_node['role'] = '出让方'    # 添加属性
    g.merge(end_node, 'Company', 'name')    # 以name属性为主键,如果存在则更新,不存在则创建

    # 为两个节点之间添加关系以及关系的属性
    relationship_type = '竞买' # 关系类型
    relationship_properties = { # 关系属性
        '交易标的': item[1],
        '首次披露日': item[2],
        '交易总价值(本币/万元)': item[3]
    }
    relationship = Relationship(start_node, relationship_type, end_node, **relationship_properties) # 创建关系
    g.merge(relationship)  # 以关系为主键,如果存在则更新,不存在则创建

先在python终端或者cmd里面安装py2neo库:

pip install py2neo

代码详解在注释里已经写得比较详细了,其中如果给结点添加属性的话,可以这样写:

start_node['role'] = '竞买方'   # 添加属性

中括号里是结点的属性,后面的赋值是属性的一个具体表现,role和竞买方这两个单词是可以换成其他东西的。

关系属性的添加的话可以这样写:

relationship_properties = { # 关系属性
        '交易标的': item[1],
        '首次披露日': item[2],
        '交易总价值(本币/万元)': item[3]
        # 添加一个关系属性:
        '交易地点':item[5]
    }

着重讲一下item,这个是在for循环当中读取每一行的数组变量,它读取的是文件的每一行:

for item in reader: # 读取每一行
    if reader.line_num == 1:    # 去除第一行
        continue
    print("当前行数:", reader1.line_num, "当前行内容:", item) # 打印当前行数和当前行内容

根据我那个表格的话,item[0]是竞买方,item[4]是出让方,item[1],item[2],item[3]分别是交易标的、首次披露日、交易总价值(本币/万元)。

 关于创建结点:

start_node = Node('Company', name=item[0])  # 创建节点
start_node['role'] = '竞买方'   # 添加属性
g.merge(start_node, 'Company', 'name')   # 以name属性为主键,如果存在则更新,不存在则创建

其中Company是这个结点的一个大属性(大类),name=item[0]就是根据item[0]来为它创建名称,role就是它的一个小属性:竞买方,g.merge()这个函数表示如果没有这个结点,就创建这个结点并添加,如果有这个结点就不重复添加了。

关于创建关系:

# 为两个节点之间添加关系以及关系的属性
    relationship_type = '竞买' # 关系类型
    relationship_properties = { # 关系属性
        '交易标的': item[1],
        '首次披露日': item[2],
        '交易总价值(本币/万元)': item[3]
    }
    relationship = Relationship(start_node, relationship_type, end_node, **relationship_properties) # 创建关系
    g.merge(relationship)  # 以关系为主键,如果存在则更新,不存在则创建

关系的大类别为:竞买,关系的属性在relationship_properties里存储,item是读取每一行之后的数据,根据数组下标填进去就行,如果要添加属性就在relationship_properties里面继续添加,格式为:

# 你要添加的属性
'要添加的属性': item[5]     # item[]中括号里面的数字看csv表格里的进行添加

结束

以上就是neo4j用python导入Excel或csv数据的方法,谢谢大家!文章来源地址https://www.toymoban.com/news/detail-810428.html

到了这里,关于neo4j用python导入Excel数据的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Neo4j:入门基础(二)~ 数据导入Neo4J

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2024年02月09日
    浏览(58)
  • 利用python将json格式的文件导入neo4j图数据库

    笔者收到了朋友的求助,希望我写一段python代码将含对用关系的json文件导入neo4j图数据库。json的格式如下: 他说数据量有几十万条,而且对应关系不唯一:但可以保证每条都含有名称和治疗,但是可能有若干条其他的对用关系,例如上文的例子:其既包含之前的三个模块,

    2024年02月16日
    浏览(44)
  • Neo4j 导入CSV数据

    Neo4j 导入CSV数据 要求 必须有一个或多个 CSV 文件来表示将在图中创建的节点和关系。 必须有一个已启动的现有 Neo4j DBMS。 Neo4j 中存储为属性的数据类型 String:字符串 Long (integer values):整数值 Double (decimal values):双精度(十进制值) Boolean:布尔值 Date/Datetime:时间 Point (sp

    2024年02月03日
    浏览(47)
  • Neo4j笔记-数据迁移(导出/导入)

    这里先说明以下几点: Neo4j在4.0下版本默认的库名是:graph.db Neo4j在4.0上版本默认的库名是:neo4j.db 不管是Neo4j,还是Neo4j Desktop,都会在bin目录下有neo4j、neo4j-admin软件。在conf目录下,有neo4j.conf配置文件。 这个就是我装的,Test项目,里面带有neo4j 如果需要把低版本的库数据导

    2024年02月14日
    浏览(46)
  • 批量数据导入Neo4j的方式

    Linux版本: Ubuntu Kylin 16.04 Neo4j版本: Neo4j-3.2.7 最常见的数据格式之一是平面文件上的 行和列 。这种电子表格格式被用于各种关系型数据库的导入和导出,所以用这种方式检索现有数据是很容易的。很明显,CSV格式就是这种类型。 Cypher中的 LOAD CSV 命令允许我们指定一个文件

    2023年04月12日
    浏览(44)
  • Neo4j导出和导入数据库

    Neo4j 4.x版本和5.x版本的导出导入有区别,这里分开来讲。 导入导出之前要先 关闭 neo4j服务。 进入 $NEO4J_HOME%/bin 目录执行如下数据库导出命令: 提示: 其中 neo4j.db 是你需要导出的默认数据库。可以去 conf 文件中查看,默认数据库是哪一个。

    2024年02月16日
    浏览(46)
  • Neo4j 图数据库的导入导出

    目录 neo4j Desktop页面层级: 图数据库导出: 图数据库导入: 图数据库的分库分表: 以Neo4j Desktop为例: 分为三个层级: Project:用于区分多个项目 DBMS:一个项目内,可以有多个版本的DBMS database:一个DBMS内,可以有多个数据库 选中一个database,点击右边的 ··· ,点击dump,

    2024年02月09日
    浏览(51)
  • 使用apoc将数据从数据库导入neo4j

    1、创建实体 这段代码的目的是从 ClickHouse 数据库中加载数据到 Neo4j 图数据库,并在加载过程中使用 APOC(Awesome Procedures on Cypher)库提供的 apoc.merge.node 过程来合并数据,确保在图数据库中的节点具有唯一性。 逐行解释这段代码: CREATE CONSTRAINT uniq_law_id ON (p:Law) ASSERT p.id IS

    2024年02月21日
    浏览(80)
  • Neo4j桌面版安装、调试和数据库导出导入

    下载路径:  Neo4j Desktop (exe) 需要填写一些信息,随便填写就行 开始下载时,界面会跳转到 激活码界面 ,激活软件用   安装完成之后,点击启动,然后输入激活码 可在Add按钮新增数据库,其中Movie DBMS为系统自带数据库,下面为自己新增 新增数据库示例: 此种情况,大概率

    2024年02月05日
    浏览(57)
  • neo4j创建数据库及导入csv文件内容详解

    neo4j展示知识图谱主要需要两类数据:节点数据和关系数据。本节主要讲解数据的输入格式。(示例数据较简单,可对照自己的数据进行调整) 1.节点文件 创建excel表格,以演员、电影数据为例: 第一列为属性名,可表示为属性名_Id,上图的属性名为actor或movie, 注意取值不

    2024年02月05日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包