当前位置: 首页 > news >正文

实现Python将csv数据导入到Neo4j

目录

一、获取数据集

1.1 获取数据集

1.2 以“记事本”方式打开文件

1.3  另存为“UTF-8”格式文件

1.4 选择“是”

二、 打开Neo4j并运行

2.1 创建新的Neo4j数据库

2.2 分别设置数据库名和密码

​编辑 2.3 启动Neo4j数据库

2.4 打开Neo4j数据库

 2.5 运行查看该数据库是否为空

三、打开Python创建项目 

3.1 创建一个包,存项目

3.2 创建一个项目

3.3 检查自己的依赖是否完全

3.3.1 点击“File”-“Settings”

3.3.2  找到“Project:PythonProject”-"Python Interpreter"

3.4 导入相关依赖,打开Terminal

3.5 输入命令

四、实现Python连接Neo4j 

4.1 Python连接Neo4j测试

4.2 导入数据集

4.3 处理数据集

4.4 初始化neo4j并合并数据集关系

4.5 把节点导入到Neo4j中

4.6 运行代码后,查看Neo4j是否有节点

4.7 导入节点关系

4.8 查看Neo4j

五、该过程出现的Bug

5.1 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte 


一、获取数据集

1.1 获取数据集

《我是刑警》的人物关系数据集资源icon-default.png?t=O83Ahttps://download.csdn.net/download/Z0412_J0103/90160496

1.2 以“记事本”方式打开文件

1.3  另存为“UTF-8”格式文件

1.4 选择“是”

二、 打开Neo4j并运行

2.1 创建新的Neo4j数据库

2.2 分别设置数据库名和密码

 2.3 启动Neo4j数据库

2.4 打开Neo4j数据库

 2.5 运行查看该数据库是否为空

match(n) return n;

三、打开Python创建项目 

3.1 创建一个包,存项目

3.2 创建一个项目

3.3 检查自己的依赖是否完全

3.3.1 点击“File”-“Settings”

3.3.2  找到“Project:PythonProject”-"Python Interpreter"

检查是否导入了“neo4j”、“pandas”、”py2neo

3.4 导入相关依赖,打开Terminal

3.5 输入命令

pip install neo4j-python-driver pandas py2neo

四、实现Python连接Neo4j 

4.1 Python连接Neo4j测试

from py2neo import *
import pandas as pd
from neo4j import GraphDatabasegraph = Graph('http://neo4j:123456@127.0.0.1:7474')

其中的”123456“是你刚刚建立的Neo4j密码,此处只需要修改该密码就可以了

4.2 导入数据集

invoice_data = pd.read_csv("D:/我是刑警.csv", header=0)
print(invoice_data.shape)

其中地址需要改变,其它地方都不用变

运行结果如下

4.3 处理数据集

peoples = list(set(invoice_data['人物'].astype(str)))
people_ties = list(set(invoice_data['关系人物'].astype(str)))
people = list(set(peoples).union(set(people_ties)))
print(people)# 清除neo4j里面的所有数据
graph.delete_all()

 执行结果如下

4.4 初始化neo4j并合并数据集关系

# 初始化一个空列表来存储所有的元组
tuple_total = []# 迭代DataFrame的每一行
for index, row in invoice_data.iterrows():ties_total = [row['人物'], row['关系'], row['关系人物']]# 将所有元组添加到结果列表中tuple_total.extend([ties_total])
print(tuple_total)

4.5 把节点导入到Neo4j中

#把节点导入neo4j中
def create_node(people):for name in people:node_1 = Node('人物', name = name)graph.create(node_1)
create_node(people)

4.6 运行代码后,查看Neo4j是否有节点

4.7 导入节点关系

matcher = NodeMatcher(graph)
# 导入关系
for i in range(0, len(tuple_total)):name_1 = matcher.match('人物', name=tuple_total[i][0]).first()name_2 = matcher.match('人物', name=tuple_total[i][2]).first()rel = tuple_total[i][1]relationship = Relationship(name_1, rel, name_2)graph.create(relationship)

4.8 查看Neo4j

 

五、该过程出现的Bug

5.1 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte 

解决过程:

是因为你的CSV文件没有设置为”UTF-8“ ,具体过程看本文的1.2和1.3过程

上一篇文章:CSDN中群发功能及自动回复设置教程_csdn粉丝群发icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/144074981下一篇文章: 

相关文章:

实现Python将csv数据导入到Neo4j

目录 一、获取数据集 1.1 获取数据集 1.2 以“记事本”方式打开文件 1.3 另存为“UTF-8”格式文件 1.4 选择“是” 二、 打开Neo4j并运行 2.1 创建新的Neo4j数据库 2.2 分别设置数据库名和密码 ​编辑 2.3 启动Neo4j数据库 2.4 打开Neo4j数据库 2.5 运行查看该数据库…...

QML Rectangle组件

文章目录 前言主体**简单的矩形****渐变的矩形****带边框的矩形****圆角矩形****圆形 & 圆环** 总结 前言 在 QML 中,Rectangle 是一个常见且非常实用的元素,它允许开发者轻松创建矩形形状的图形。通过调整 Rectangle 的多种属性,我们不…...

uniapp开发app,cover-view不能隐藏,使用v-if,v-show都不行的解决办法

先上解决方案 在最后多写一个v-else <cover-view class"point-info" v-if"selectedPoint"><cover-view class"info-content"><cover-view class"info-item">。。。</cover-view><cover-view class"i…...

用adb命令给APP做压力测试,有什么不同?

压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令&#xff0c;例如操作app的点击&#xff0c;滑动&#xff0c;返回等一系列随机事件&#xff0c;来检测app的承受能力 第一步&#xff1a;手机安装包需要待测的app 第二步&#xff1a;输入adb start-ser…...

netcore 集成Prometheus

一、安装包 <ItemGroup><PackageReference Include"prometheus-net" Version"8.2.1" /><PackageReference Include"prometheus-net.AspNetCore" Version"8.2.1" /> </ItemGroup> 二、添加代码 #region Pro…...

同城外卖系统源码扩展指南:搭建海外外卖APP平台详解

本篇文章&#xff0c;笔者将探讨如何基于同城外卖系统源码&#xff0c;搭建适合不同国家的海外外卖APP平台&#xff0c;涵盖多语言支持、支付接口对接、本地化适配等方面的实践经验和技术要点。 一、确定目标市场与用户需求 在开发海外外卖APP平台之前&#xff0c;首先需要深…...

JavaScript 中常见内置对象的知识点及示例总结

一、String&#xff08;字符串&#xff09;对象 知识点&#xff1a; 用于处理文本数据&#xff0c;它有许多内置的属性和方法来操作字符串&#xff0c;比如获取字符串长度、提取子字符串、替换字符等。字符串在 JavaScript 中是不可变的&#xff0c;即一旦创建&#xff0c;就不…...

CSSmodule的作用是什么

CSS Modules的作用主要体现在以下几个方面&#xff1a; 1. 解决全局样式污染问题 在传统的CSS管理方式中&#xff0c;样式定义通常是全局的&#xff0c;这很容易导致全局样式污染。当多个组件或页面共享同一个样式时&#xff0c;可能会出现样式冲突和覆盖的情况&#xff0c;从…...

python\shell\c++语法对比

语法区别举例&#xff1a; itempythonshellc变量定义a 10a10int a 10数组定义arr[1, add, 3]arr(1 a hello) declare -A arr([a]1 [b]2)int arr[] {1, 2, 3}if条件判断 if xxx: xxx elif xxx: xxx else: xxx if [ expressions ];then xxx e…...

优先队列【东北大学oj数据结构9-3】C++

优先队列 优先级队列是一种数据结构&#xff0c;其中保存了一组数据 S&#xff0c;其中每个元素都有一个键&#xff0c;并执行以下操作&#xff1a; insert(S, k)&#xff1a;将元素k插入集合S extractMax(S)&#xff1a;从S中取出S中key最大的元素并返回其值 创建一个程序&am…...

圣诞快乐(h5 css js(圣诞树))

一&#xff0c;整体设计思路 圣诞树h5&#xff08;简易&#xff09; 1.页面布局与样式&#xff1a; 页面使用了全屏的黑色背景&#xff0c;中央显示圣诞树&#xff0c;树形由三层绿色的三角形组成&#xff0c;每一层的大小逐渐变小。树干是一个棕色的矩形&#xff0c;位于三角…...

基于MATLAB的图像增强

目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明&#xff08;一&#xff09;整体结构&#xff08;二&#xff09;亮度增强部分&#xff08;三&#xff09;对比度增强部分&#xff08;四&#xff09;锐度增强部分 四、复现步骤&#xff08;…...

大数据之Hbase环境安装

Hbase软件版本下载地址&#xff1a; http://mirror.bit.edu.cn/apache/hbase/ 1. 集群环境 Master 172.16.11.97 Slave1 172.16.11.98 Slave2 172.16.11.99 2. 下载软件包 #Master wget http://archive.apache.org/dist/hbase/0.98.24/hbase-0.98.24-hadoop1-bin.tar.gz…...

javaEE--计算机是如何工作的-1

目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB&#xff08;Process Control Block)) 3.P…...

vue.js 指令的修饰符

Vue.js 提供了一些指令修饰符&#xff0c;用于在指令的行为上添加额外的功能。下面详细解析一些常用的指令修饰符&#xff0c;并提供相应的代码实例。 .prevent&#xff1a;阻止默认事件 通过添加 .prevent 修饰符&#xff0c;可以阻止指令绑定的元素触发默认事件。 代码实例&a…...

基于java web在线商城购物系统源码+论文

一、环境信息 开发语言&#xff1a;JAVA JDK版本&#xff1a;JDK8及以上 数据库&#xff1a;MySql5.6及以上 Maven版本&#xff1a;任意版本 操作系统&#xff1a;Windows、macOS 开发工具&#xff1a;Idea、Eclipse、MyEclipse 开发框架&#xff1a;SpringbootHTMLjQueryMysq…...

Autosar入门_架构(Architecture)

上一篇 | 返回主目录 | 下一篇 架构(Architecture) 1 Autosar架构分层概述2 MCAL3 ECU抽象层4 复杂设备驱动5 服务层6 RTE7 应用软件层1 Autosar架构分层概述 整体架构分为三层:应用软件(APP)、实时运行环境(RTE)、基础软件(BSW)以下架构对BSW进行了细化,主要包含四…...

Altair: 轻松创建交互式数据可视化

Altair: 轻松创建交互式数据可视化 Altair 是一个基于 Vega-Lite 的 Python 数据可视化库&#xff0c;它旨在简化数据可视化的创建过程&#xff0c;尤其适用于统计图表的生成。Altair 强调声明式编码方式&#xff0c;通过简单的语法&#xff0c;用户能够快速创建复杂的交互式图…...

APM32F411使用IIS外设驱动es8388实现自录自播

前言&#xff1a; 从零开始学习I2s外设&#xff0c;配置Es8288寄存器实现录音播放。本文章使用主控芯片是APM32F411系类。音频相关的概念比较多&#xff0c;就不再次做过多的介绍&#xff0c;本文章只是简单实现边录边播功能。APM系类兼容st的芯片&#xff0c;所以用st的hal库来…...

RabbitMQ消息队列的笔记

Rabbit与Java相结合 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 在配置文件中编写关于rabbitmq的配置 rabbitmq:host: 192.168.190.132 /…...

高速ADC采样时钟不准?手把手教你理解时钟占空比校正(DCC)电路的核心原理

高速ADC采样时钟不准&#xff1f;手把手教你理解时钟占空比校正&#xff08;DCC&#xff09;电路的核心原理 当你在调试一块高速ADC板卡时&#xff0c;发现ENOB&#xff08;有效位数&#xff09;始终比规格书低2-3位&#xff0c;频谱分析显示谐波失真异常。这种困扰可能来自一…...

模型压缩新选择:用LLaMA-Factory实现QLoRA+GPTQ双重量化(附CUDA配置)

模型压缩新选择&#xff1a;用LLaMA-Factory实现QLoRAGPTQ双重量化实战指南 当大语言模型的参数量突破百亿级别&#xff0c;如何在消费级显卡上实现高效推理成为开发者面临的核心挑战。传统单一量化方法往往需要在精度和效率之间艰难取舍&#xff0c;而混合量化技术正在打开新的…...

Hypermesh2021实战:塑料圆盘结构化网格划分全流程(附避坑指南)

Hypermesh2021实战&#xff1a;塑料圆盘结构化网格划分全流程&#xff08;附避坑指南&#xff09; 在CAE仿真分析领域&#xff0c;网格划分质量直接影响计算结果的精度和效率。对于薄壳类塑料零件&#xff0c;采用结构化网格不仅能提升计算收敛性&#xff0c;还能显著减少单元数…...

基于WPS云服务架构的Vue文档预览组件技术实现与性能优化

基于WPS云服务架构的Vue文档预览组件技术实现与性能优化 【免费下载链接】wps-view-vue wps在线编辑、预览前端vue项目&#xff0c;基于es6 项目地址: https://gitcode.com/gh_mirrors/wp/wps-view-vue 在微前端架构和云原生应用日益普及的技术背景下&#xff0c;企业级…...

芯片工程师如何从AI那里“榨出“隐性知识?

大语言模型里藏着很多东西&#xff0c;但大部分人只用到了表面。这些模型在训练时吃进去的不只是教科书和官方文档&#xff0c;还有大量的技术博客、论坛讨论、开源代码、甚至是一些没公开发表的技术报告。这些知识以一种隐性的方式存在于模型参数中&#xff0c;不会主动跳出来…...

SEO网站广告如何与本地化营销相结合

SEO网站广告与本地化营销的结合&#xff1a;如何提升本地企业的市场竞争力 在当今数字化经济的浪潮中&#xff0c;SEO网站广告和本地化营销已经成为企业营销的两大重要手段。如何将这两者有机地结合&#xff0c;以实现最大的营销效益&#xff0c;是许多企业面临的重要课题。本…...

2026降AIGC率工具实测:10款好用工具推荐(论文AI痕迹重必看)

临近毕业季&#xff0c;不少同学都在为论文的AIGC检测头疼&#xff1a;明明是自己写的内容&#xff0c;却被判定为AI生成&#xff1f;用AI搭了初稿&#xff0c;怎么改都消不掉机器痕迹&#xff1f;到底有没有靠谱的降AI率工具能真正解决问题&#xff1f; 今天我就给大家整理了1…...

OpenClaw自动化周报:Qwen3.5-9B解读工作截图生成总结

OpenClaw自动化周报&#xff1a;Qwen3.5-9B解读工作截图生成总结 1. 为什么需要自动化周报 每周五下午&#xff0c;我都会陷入一种"周报焦虑"——电脑桌面上堆满了会议截图、临时记录的txt文件、微信里的零散对话。手动整理这些碎片信息需要3-4个小时&#xff0c;常…...

Glide框架在Java中的高效集成与动图加载实践

1. 为什么选择Glide处理Java项目中的动图加载 第一次在Android项目里遇到动图加载需求时&#xff0c;我试过用原生ImageView逐帧解析&#xff0c;结果内存直接爆了。后来发现Glide这个宝藏框架&#xff0c;它就像个智能的动图管家&#xff0c;把复杂的解码、内存管理、缓存优化…...

Bypass Paywalls Clean:智能内容解锁工具的终极使用指南

Bypass Paywalls Clean&#xff1a;智能内容解锁工具的终极使用指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字化信息时代&#xff0c;学术研究者、新闻从业者和知识工作者…...