python将csv数据导入neo4j

news/发布时间2024/6/1 4:42:57

参考链接: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)

# 读取数据
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: 0TS代码股票代码股票名称行业
00000001.SZ1平安银行银行
11000002.SZ2万科A全国地产
22000004.SZ4国华网安互联网
33000005.SZ5世纪星源环境保护
44000006.SZ6深振业A区域地产
holder.head()
Unnamed: 0ts_codeann_dateend_dateholder_namehold_amounthold_ratio
00000001.SZ2019030720181231新华人寿保险股份有限公司-分红-个人分红-018L-FH002深4.960350e+070.29
11000001.SZ2019030720181231中国平安保险(集团)股份有限公司-集团本级-自有资金8.510493e+0949.56
22000001.SZ2019030720181231中国平安人寿保险股份有限公司-自有资金1.049463e+096.11
33000001.SZ2019030720181231香港中央结算有限公司(陆股通)4.307515e+082.51
44000001.SZ2019030720181231中国证券金融股份有限公司4.292327e+082.50
concept_num.head()
Unnamed: 0codenamesrc
00TS0密集调研ts
11TS1南北船合并ts
22TS25Gts
33TS3机场ts
44TS4高价股ts
concept.head()
Unnamed: 0idconcept_namets_codename
00TS0密集调研000301.SZ东方盛虹
11TS0密集调研000401.SZ冀东水泥
22TS0密集调研000932.SZ华菱钢铁
33TS0密集调研002013.SZ中航机电
44TS0密集调研002106.SZ莱宝高科
sh.head()
ts_codehs_typein_dateout_dateis_new
0601628.SHSH20141117NaN1
1601099.SHSH20141117NaN1
2601808.SHSH20141117NaN1
3601107.SHSH20141117NaN1
4601880.SHSH20141117NaN1
sz.head()
ts_codehs_typein_dateout_dateis_new
0002910.SZSZ20171114NaN1
1000016.SZSZ20180102NaN1
2001872.SZSZ20180102NaN1
3000040.SZSZ20180102NaN1
4000401.SZSZ20180102NaN1
corr.head()
Unnamed: 0s1s2corr
00000001.SZ.000001.SZ.1.000000
11000001.SZ.000002.SZ.0.648945
22000001.SZ.000005.SZ.0.342920
33000001.SZ.000009.SZ.0.297213
44000001.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:continuer = Relationship(a,'概念属于',b)graph.create(r) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/Qofi/2274.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

全网Bento和3D?点评2024年UX/UI设计趋势

2024年已经到来,对于UX/UI设计领域来说,这可能是过去若干年来UI / UX趋势最统一、最确定的一年。在接下来的文章中,笔者将在点评各个设计趋势的同时,分析现象背后的原因,并给新入行的设计师一些成长的建议。 什么是UI和…

振弦采集仪在桥梁安全监测中的应用研究

振弦采集仪在桥梁安全监测中的应用研究 振弦采集仪是一种常用的测量设备,用于桥梁安全监测中的应用研究。通过采集桥梁主梁上的振弦数据,可以对桥梁的结构健康状况进行监测和评估。 振弦采集仪通过安装在桥梁主梁上的振弦传感器,实时采集桥…

spark sql官网优化指南

两句话概括 缓存数据调整参数 缓存数据 把数据缓存到内存,spark sql能够只扫描需要列并且会自动压缩数据,占用最小的内存和减小GC压力。这无需多言,内存远远要快于磁盘,spark效率比hive高这个就是一个主要原因。 缓存数据代码spark.catalog.cacheTable("tableName&qu…

React -- 组件通信

A-B 父子通信B-C 兄弟通信A-E 跨层通信 父子通信-父传子 基础实现 **实现步骤 ** 父组件传递数据 - 在子组件标签上绑定属性子组件接收数据 - 子组件通过props参数接收数据 function Son(props){return <div>{ props.name }</div> }function App(){const name …

小程序--vscode配置

要在vscode里开发微信小程序&#xff0c;需要安装以下两个插件&#xff1a; 安装后&#xff0c;即可使用vscode开发微信小程序。 注&#xff1a;若要实现鼠标悬浮提示&#xff0c;则需新建jsconfig.json文件&#xff0c;并进行配置&#xff0c;即可实现。 jsconfig.json内容如…

【C++】vector模拟实现+迭代器失效

vector模拟实现 成员变量定义默认成员函数构造函数 迭代器范围for、对象类型匹配原则 容量操作sizeemptycapacityreserve成员变量未更新memcpy值拷贝 resize内置类型的构造函数 数据访问frontbackoperator[ ] 数据修改操作push_backpop_backswapclearinsertpos位置未更新无返回…

我有一个自解压的文件,格式EXE的.我想加密.怎么弄? 给人家要密码才能解压.

要加密一个自解压的EXE文件&#xff0c;使其需要密码才能解压&#xff0c;你可以使用加密软件或者对EXE文件进行一些特殊的处理。以下是一些建议的方法&#xff1a; 1. 使用加密软件 WinRAR&#xff1a;WinRAR是一个常用的压缩和解压缩工具&#xff0c;它也提供了加密功能。你…

18. 四数之和 - 力扣(LeetCode)

问题描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; …

运维SRE-18 自动化批量管理-ansible4

12.2handles handles触发器(条件)&#xff0c;满足条件后再做什么事情应用场景&#xff1a;想表示&#xff1a;配置文件变化&#xff0c;再重启服务 配置handlers之前&#xff0c;每次运行剧本都会重启nfs&#xff0c;无论配置文件是否变化。 [rootm01 /server/ans/playbook]…

Vue3快速上手(七) ref和reactive对比

一、ref和reactive对比 表格形式更加直观吧&#xff1a; 项目refreactive是否支持基本类型支持不支持是否支持对象类型支持支持对象类型是否支持属性直接赋值不支持&#xff0c;需要.value支持是否支持直接重新分配对象支持&#xff0c;因为操作的.value不支持&#xff0c;需…

Python列表:灵活多变的数据结构

文章目录 一、列表1.创建列表2.访问列表元素3.修改列表元素4.添加元素5.删除元素 二、列表脚本操作符1.连接运算符 2.重复运算符 * 三、列表函数&方法1.函数1.1 len() 函数1.2 max() 函数1.3 min() 函数1.4 sum() 函数1.5 list() 函数 2.方法2.1 append() 方法2.2 extend()…

相机图像质量研究(25)常见问题总结:CMOS期间对成像的影响--过曝、欠曝

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

ElasticSearch语法

Elasticsearch 概念 入门学习: Index索引>MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL&#xff0c;能够自动帮我们做分词&#xff0c;能够非常高效、灵活地查询内…

腾讯云OSS文件上传功能

腾讯云COS介绍 腾讯云COS&#xff08;Cloud Object Storage&#xff09;是一种基于对象的存储服务&#xff0c;用于存储和管理海量的非结构化数据&#xff0c;如图片、音视频文件、备份数据等。它具有以下特点和优势&#xff1a; 高可靠性&#xff1a;采用分布式存储架构&…

图——最小生成树实现(Kruskal算法,prime算法)

目录 预备知识&#xff1a; 最小生成树概念&#xff1a; Kruskal算法&#xff1a; 代码实现如下&#xff1a; 测试&#xff1a; Prime算法 &#xff1a; 代码实现如下&#xff1a; 测试&#xff1a; 结语&#xff1a; 预备知识&#xff1a; 连通图&#xff1a;在无向图…

精工电联:定制精工线缆,赋能科技互联---致力于为客户提供卓越的连接线缆和连接器产品

精工电联 “定制精工线缆 &#xff0c;赋能科技互联”&#xff0c;精工电联致力于为高科技产业提供全方位、多维度的集成线缆解决方案。凭借深厚的研发实力和丰富的行业经验&#xff0c;精工电联已经成功地在工控设备、医疗设备、人工智能、新能源领域、轨道交通和超声波设备等…

【力扣 - 二叉树的中序遍历】

题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 提示&#xff1a; 树中节点数目在范围 [0, 100] 内 -100 < Node.val < 100方法一&#xff1a;递归 思路与算法 首先我们需要了解什么是二叉树的中序遍历&#xff1a;按照访问左子树——…

Java实现班级考勤管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统基础支持模块2.2 班级学生教师支持模块2.3 考勤签到管理2.4 学生请假管理 三、系统设计3.1 功能设计3.1.1 系统基础支持模块3.1.2 班级学生教师档案模块3.1.3 考勤签到管理模块3.1.4 学生请假管理模块 3.2 数据库设…

KubeKey一键部署:轻松安装Kubernetes与KubeSphere

本文主要参考“在 Linux 上以 All-in-One 模式安装 KubeSphere”进行实践测试部署。 通过KubeKey工具实现Kubernetes&#xff08;k8s&#xff09;和KubeSphere的一键式安装&#xff0c;极大地简化了安装过程。用户无需手动预先安装Docker和Kubernetes&#xff0c;只需按照以下…

车载氢气浓度传感器为氢能源车保驾护航

最近&#xff0c;车载氢气浓度传感器成为了一个热门话题。作为一名对科技充满热情的汽车爱好者&#xff0c;我自然也对这个话题产生了浓厚的兴趣。那么&#xff0c;车载氢气浓度传感器到底是什么&#xff1f;它又是如何工作的呢&#xff1f;下面就让我为你一一揭秘。 首先&…
推荐文章