海事数据的格式
标签:
ship_ShipName,ship_MMSI,ship_BuildDate,ship_ShipTypeGroup,ship_ShipTypeLevel5SubGroup,ship_ShipType,ship_GroupCompany,ship_GroupCompanyCountry,ship_OperatorCompany,ship_OperatorCompanyCountry,ship_CountryOfEconomicBenefit,ship_DeadWeight,ship_GrossTonnage,ship_LengthLOA,ship_MouldWidth,ship_Draught,ship_LiquidCapacity
首先使用excel根据标签中的如下五个类别创建三元组形成ships.csv文件:
- ship_GroupCompany,
- ship_GroupCompanyCountry,
- ship_OperatorCompany,
- ship_OperatorCompanyCountry,
- ship_CountryOfEconomicBenefit
ships.csv文件的格式如下图:

有了三元组和原表格我们可以很方便添加数据到neo4j的数据库中。
函数
- createNode:在neo4j中创建节点
- createRelationship:在neo4j中创建节点的关系
- matchNode:在neo4j中匹配数据
- get_ship_properties:得到所有船的属性
- csv2df:将csv转为df
- df2neo:将df(从df中提取的数据)转为neo4j
代码
from py2neo import *
import os
import pandas as pd
import numpy as np
# 数据库
graph = Graph('http://localhost:7474', username='neo4j', password='myneo4j')
# 创建节点
def createNode(m_graph, m_label, m_attrs):
# m_n = "_.name=" + "\'" + m_attrs['name'] + "\'"
m_n = None
if m_label == 'SHIP':
m_n = "_.MMSI=" + "\'" + m_attrs['MMSI'] + "\'"
elif m_label == 'COMPANY' or m_label == 'COUNTRY/REGION':
m_n = "_.Name=" + "\'" + m_attrs['Name'] + "\'"
matcher = NodeMatcher(m_graph)
re_value = matcher.match(m_label).where(m_n).first()
print(re_value)
if re_value is None:
m_node = Node(m_label, **m_attrs)
n = graph.create(m_node)
return n
# print('Fail to create Node!!')
return None
# 创建两个节点的关系,如果节点不存在就不创建关系
def createRelationship(m_graph, m_label1, m_attrs1, m_label2

本文介绍了如何使用Excel创建ships.csv文件,展示了如何通过ship_ShipName等属性创建ship、COMPANY和COUNTRY/REGION节点,并将数据导入Neo4j数据库。重点讲解了createNode和createRelationship函数的使用,以及如何利用csv数据进行节点关系的建立。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



