将csv文件导入neo4j图形数据库操作

目标:将医疗数据按照属性,实体,实体关系分类,用python创建相关结点和关系,导入neo4j数据库,最后将图数据库导出为json格式。

一、处理数据

  1. 将有来医生,民福康,网易健康三个网站数据汇总,合并重叠的标题栏。

各网站标题栏如下(黄色和橙色表示标题栏有重合的部分):

有来医生

民福康

网易健康

科室

科室

科室

疾病名称

疾病名称

疾病名称

相关症状

相关症状

症状

相关检查

相关检查

检查

治疗方法

治疗方法

治疗

发病部位

发病部位

简介

多发人群

多发人群

病因

是否遗传

是否遗传

预防

相关疾病

相关疾病

护理

相关手术

相关手术

并发症

挂号科室

是否属于医保

 

是否传染

  

相关药品

  

相关费用

  

新建一个excel表格,将各网站信息标题合并成为一个标题栏如下:

  1.  手动处理表格,将各网站医疗信息对应标题分别存入新表格,没有的标题信息都为空。
  2. 将excel表格导出为csv格式,得到如下csv表格样式

 

二、建立图型数据库

1. pycharm连接neo4j,创建csv文件对象

       安装py2neo库,从中导入Graph,Node,Relationship。并且创建csv文件对象,图形数据库对象。

 

2. 根据事先划分好的实体,实体属性,实体关系类型,定义各类型对象名称。

其中实体类型:                        

实体类型

中文含义

对应csv列标

Department  

科室

0

Symptom    

相关症状

2

Check     

相关检查

3

Operation   

相关手术

9

Disease    

疾病

1

Relative_disease 

相关疾病

8

Drug   

相关药品

12

Registration_department

挂号科室   

10

        

实体(疾病)属性类型:

属性类型

中文含义

对应csv列标

Name  

疾病名称   

1

Cure

治疗方法   

4

Location_disease

发病部位   

5

Multiple_person

多发人群   

6

Inherit

是否遗传  

7

Infect

是否传染  

11

Fee

相关费用  

13

Insurance

是否医保  

14

Desc

简介    

15

Cause

病因   

16

Prevent

预防   

17

Nurse

护理

18

Complication

并发症   

19

      

实体关系类型:

实体关系类型

中文含义

has_symptom

疾病显示症状   

Need_check

疾病所需检查

Relative_Operation

疾病所需手术

Relative_Diseases

疾病的有关疾病

recommand_drug

疾病该吃的药品

Registrat_Department

疾病挂号科室

Belongto_department

疾病属于科室

 

  1. 对图形数据库对象创建实体,实体关系结点

   按行读取csv数据且跳过处理第一行数据,创建实体对象,其中疾病实体含有多种不同属性,数字分别表示是第几列的信息。

 

 

 

   创建实体关系型结点对象:

   在图形数据库中创建实体和关系:

 

  1. 查看图形数据库,并导出为json

 

Cypher语句输入:match (n) return (n) 查看所有结点

导出;

 

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
neo4j是一个开源的图形数据库,可以用来存储和查询具有复杂关系的数据。而在导入数据时,neo4j最常见的数据格式之一就是CSV文件导入CSV文件neo4j时,需要执行以下几个步骤: 1. 首先将CSV文件放置在能够被neo4j访问的地方。 2. 然后使用LOAD CSV命令来读取CSV文件并将其转换为neo4j节点和关系。例如: LOAD CSV WITH HEADERS FROM "file:/path/to/myfile.csv" AS row CREATE (:Person { name: row.name, age: toInteger(row.age)}) 这个例子假设CSV文件具有一个标题行,包含“name”和“age”属性,然后将其转换为一个名为“Person”的节点。 3. 接下来,根据实际情况,可以将节点之间的关系用关系标注(relationship types)进行标记,以便后续查询。例如: LOAD CSV WITH HEADERS FROM "file:/path/to/relationships.csv" AS row MATCH (a:Person {name: row.start}) MATCH (b:Person {name: row.end}) MERGE (a)-[:FRIEND]->(b) 这个例子假设relationships.csv具有一个标题行,包含“start”和“end”列,然后将其转换为一个“Friend”关系。 4. 最后可以使用Index或者Constraints等方法进行索引和优化。例如: CREATE INDEX ON :Person(name) 这个例子将针对名为“Person”的节点类型,为其“name”属性创建一个索引。 综上,这就是neo4j导入CSV文件的基本步骤。需要说明的是,这只是导入数据的最基本方式,还有其他高效的方法,可以更好地满足特定需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值