python将csv数据导入neo4j

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

参考链接:https://github.com/jm199504/Financial-Knowledge-Graphs/tree/master

from pandas import DataFrame
from py2neo import Graph,Node,Relationship,NodeMatcher
import pandas as pd
import numpy as np
import os
# 连接Neo4j数据库
from py2neo import Graph, Node, Relationship, walk, NodeMatcher, RelationshipMatcher
import pandas as pd
import json
# 连接数据库 输入地址、用户名、密码
from py2neo import Graph

# 使用包含用户名和密码的 URI 连接到数据库
uri = "http://neo4j:neo4j@localhost:7474"
graph = Graph(uri)
a = Node('Person',name='Tom')
graph.create(a)
b = Node('Person',name='Bob')
graph.create(b)

# 创建关系例子
r = Relationship(a,'KNOWS',b)
graph.create(r)

# 读取节点信息
node = DataFrame(graph.run('MATCH (n:`Person`) RETURN n LIMIT 25'))
# print(node)

# 读取关系信息
relation = DataFrame(graph.run('MATCH (n:`Person`)-[r]->(m:`Person`) return n,m,type(r)'))
# print(relation)

# 删除所有节点
graph.run('MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r')

(No data)文章来源地址https://www.toymoban.com/news/detail-834675.html

# 读取数据
stock = pd.read_csv('stock_basic.csv',encoding="gbk")
holder = pd.read_csv('stock_holders.csv',encoding="gbk")
concept_num = pd.read_csv('concept.csv',encoding="gbk")
concept = pd.read_csv('stock_concept.csv',encoding="gbk")
sh = pd.read_csv('sh.csv')
sz = pd.read_csv('sz.csv')
corr = pd.read_csv('corr.csv')
stock.head()
Unnamed: 0 TS代码 股票代码 股票名称 行业
0 0 000001.SZ 1 平安银行 银行
1 1 000002.SZ 2 万科A 全国地产
2 2 000004.SZ 4 国华网安 互联网
3 3 000005.SZ 5 世纪星源 环境保护
4 4 000006.SZ 6 深振业A 区域地产
holder.head()
Unnamed: 0 ts_code ann_date end_date holder_name hold_amount hold_ratio
0 0 000001.SZ 20190307 20181231 新华人寿保险股份有限公司-分红-个人分红-018L-FH002深 4.960350e+07 0.29
1 1 000001.SZ 20190307 20181231 中国平安保险(集团)股份有限公司-集团本级-自有资金 8.510493e+09 49.56
2 2 000001.SZ 20190307 20181231 中国平安人寿保险股份有限公司-自有资金 1.049463e+09 6.11
3 3 000001.SZ 20190307 20181231 香港中央结算有限公司(陆股通) 4.307515e+08 2.51
4 4 000001.SZ 20190307 20181231 中国证券金融股份有限公司 4.292327e+08 2.50
concept_num.head()
Unnamed: 0 code name src
0 0 TS0 密集调研 ts
1 1 TS1 南北船合并 ts
2 2 TS2 5G ts
3 3 TS3 机场 ts
4 4 TS4 高价股 ts
concept.head()
Unnamed: 0 id concept_name ts_code name
0 0 TS0 密集调研 000301.SZ 东方盛虹
1 1 TS0 密集调研 000401.SZ 冀东水泥
2 2 TS0 密集调研 000932.SZ 华菱钢铁
3 3 TS0 密集调研 002013.SZ 中航机电
4 4 TS0 密集调研 002106.SZ 莱宝高科
sh.head()
ts_code hs_type in_date out_date is_new
0 601628.SH SH 20141117 NaN 1
1 601099.SH SH 20141117 NaN 1
2 601808.SH SH 20141117 NaN 1
3 601107.SH SH 20141117 NaN 1
4 601880.SH SH 20141117 NaN 1
sz.head()
ts_code hs_type in_date out_date is_new
0 002910.SZ SZ 20171114 NaN 1
1 000016.SZ SZ 20180102 NaN 1
2 001872.SZ SZ 20180102 NaN 1
3 000040.SZ SZ 20180102 NaN 1
4 000401.SZ SZ 20180102 NaN 1
corr.head()
Unnamed: 0 s1 s2 corr
0 0 000001.SZ. 000001.SZ. 1.000000
1 1 000001.SZ. 000002.SZ. 0.648945
2 2 000001.SZ. 000005.SZ. 0.342920
3 3 000001.SZ. 000009.SZ. 0.297213
4 4 000001.SZ. 000010.SZ. 0.186165
# 数据预处理
stock['行业'] = stock['行业'].fillna('未知')
holder = holder.drop_duplicates(subset=None, keep='first', inplace=False)
# 创建实体(概念、股票、股东、股通)

sz = Node('深股通',名字='深股通')
graph.create(sz)  
 
sh = Node('沪股通',名字='沪股通')
graph.create(sh)  

for i in concept_num.values:
    a = Node('概念',概念代码=i[1],概念名称=i[2])
    # print('概念代码:'+str(i[1]),'概念名称:'+str(i[2]))
    graph.create(a)

for i in stock.values:
    a = Node('股票',TS代码=i[1],股票名称=i[3],行业=i[4])
    # print('TS代码:'+str(i[1]),'股票名称:'+str(i[3]),'行业:'+str(i[4]))
    graph.create(a)

for i in holder.values:
    a = Node('股东',TS代码=i[0],股东名称=i[1],持股数量=i[2],持股比例=i[3])
    # print('TS代码:'+str(i[0]),'股东名称:'+str(i[1]),'持股数量:'+str(i[2]))
    graph.create(a)
# 创建关系(股票-股东、股票-概念、股票-公告、股票-股通)

matcher = NodeMatcher(graph) 
for i in holder.values:    
    a = matcher.match("股票",TS代码=i[0]).first()
    b = matcher.match("股东",TS代码=i[0])
    for j in b:
        r = Relationship(j,'参股',a)
        graph.create(r)
        print('TS',str(i[0]))
            
for i in concept.values:
    a = matcher.match("股票",TS代码=i[3]).first()
    b = matcher.match("概念",概念代码=i[1]).first()
    if a == None or b == None:
        continue
    r = Relationship(a,'概念属于',b)
    graph.create(r) 

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

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

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

相关文章

  • Neo4j导入csv文件

    Neo4j 数据库可以使用 load csv 命令从 CSV 文件中导入数据。 load csv 命令可以帮助我们导入中小型的数据,理论上大概能处理到一千万条记录。 其中,CSV文件推荐是使用 UTF-8 编码,不然就会造成中文乱码的糟糕情况。 Neo4j的配置文件是 conf 文件夹下的 neo4j.conf 文件,里面有一句

    2023年04月08日
    浏览(91)
  • Neo4j的使用+导入导出csv文件

    1.进入cmd控制界面,然后进入到自己的NEO4J的bin目录下,输入neo4j,然后其会展示一些neo4j的命令。 2.先进行 neo4j install-service 操作,安装控制服务台,再进行 neo4j start 命令打开,然后 neo4j console 打开控制台。 复制网址并打开 http://localhost:7474 第一次进入需注册,初始密码是n

    2024年02月03日
    浏览(108)
  • Neo4j导入CSV文件(实体和关系)

    打开cmd切换到neo4j安装目录的bin下,输入以下命令 如果想读取不在import directory中的CSV,则: (1)先改变neo4j默认设置,即:删除dbms.directories.import=import或者在该语句前加“#”; (2)使用 “LOAD CSV FROM file:///C:/XXX/name.csv”(即:file:///+绝对路径), 导入本地CSV文件 。

    2024年02月15日
    浏览(57)
  • NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件

    因为我也刚接触知识图谱,就是小白,本篇博客相当于一些入门级的Cypher语句的举例,然后具体说明一下NEO4J Desktop导入CSV文件是怎么实现的,以及他的一些基本操作,适合刚接触的小伙伴。如果大家对于NEO4J的配置有疑问的话可以参考文章NEO4J桌面版的配置和连接Pycharm_neo4

    2024年01月23日
    浏览(44)
  • Neo4j---(3)批量导入实体和关系csv文件之LOAD CSV

    一、几大导入方式的差异 1. neo4j-admin import: 只能初始化,若要用的话必需清空之前的数据库。 不能很好的适应不断要添加新节点和关系的需求。 必需关闭数据库 neo4j stop 2. LOAD CSV 可以在原数据库基础上新增数据,导入中小型数据,1kw条左右 不用关闭数据库,可以直接在b

    2024年02月07日
    浏览(65)
  • 知识图谱:py2neo将csv文件导入neo4j

    安装py2neo 安装 python 中的 neo4j 操作库: pip install py2neo 安装 py2neo 后我们可以使用其中的函数对 neo4j 进行操作。 图数据库 Neo4j 中最重要的就是结点和边(关系),结点之间靠边联系在一起,每个结点也有属于自己的属性。 也就是说我们在用 pyhton 操作 Neo4j 的时候只需要创造

    2024年02月20日
    浏览(50)
  • Neo4j---(2)批量导入实体和关系csv文件之neo4j-admin import

    要点: neo4j-admin import命令的适用情况:未初始化空数据库or新建数据库 csv文件的编码:有中文用 “UTF-8” 节点csv和关系csv文件的固定格式以及必要的属性列 一、neo4j-admin import命令 1.作用:批量导入csv数据 2.条件:必须有权限对dbmis.directories.data 和dbms.directories.log进行写入操作

    2024年02月06日
    浏览(46)
  • neo4j用python导入Excel数据的方法

    目录 neo4j的下载 neo4j的介绍 neo4j简介 neo4j样本项目介绍 neo4j修改密码 连接GraphXR 用Python往neo4j导入Excel数据 代码部分  关于创建结点: 关于创建关系: 结束 neo4j下载网址:Neo4j Download Center - Graph Database Analytics 点击红框内的Download Neo4j Desktop 填写信息后点击Download Desktop,即可

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

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

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

    本文简要介绍Neo4j数据库以及如何从CSV文件中导入示例数据,方便我们快速学习测试图数据库。首先介绍简单数据模型以及基本图查询概念,然后通过LOAD CSV命令导入数据,生成节点和关系。 读者可以快速安装Neo4j Desktop,启动并创建`City Calls’项目 ,启动数据库并打开Neo4j

    2024年02月15日
    浏览(70)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包