做外链网站,网站建设程序员做什么,电子商务网站建立,培训班有哪些课程本章节通过聚焦于金额这一核心属性#xff0c;构建了一幅知识图谱#xff0c;旨在揭示销售方与购买方间的商业互动网。在这张图谱中#xff0c;绿色节点象征着购买方#xff0c;而红色节点则代表了销售方。这两类节点间的紧密连线金额这一核心属性构建了一幅知识图谱旨在揭示销售方与购买方间的商业互动网。在这张图谱中绿色节点象征着购买方而红色节点则代表了销售方。这两类节点间的紧密连线不仅映射了双方在市场活动中的合作桥梁还特别以不同颜色编码的线条区分了交易的规模等级细分为1000万级别、2000万级别、5000万级别乃至8000万级别的交易纽带以此精准描绘出商业交易的多样性和规模层次。 目录 一、结果
二、数据
三、DataToNeo4jClass1.py
四、invoice_neo4j1.py 一、结果 二、数据 三、DataToNeo4jClass1.py
# -*- coding: utf-8 -*-
from py2neo import Node, Graph, Relationship,NodeMatcherclass DataToNeo4j(object):将excel中数据存入neo4jdef __init__(self):建立连接link Graph(http://localhost:7474, auth(neo4j, 123456789Xx))self.graph link#self.graph NodeMatcher(link)# 定义label定义标签self.buy buy#购买方self.sell sell#销售方self.graph.delete_all()#删除已有的节点和关系、清空self.matcher NodeMatcher(link)#定义一个matcher一会定义关系的时候要用#NodeMatcher是从py2neo中导入的 后续帮助做匹配#下边注释掉的是一些官方的小例子做测试的时候可以试一试##Node是从py2neo中导入的#创建节点node3 Node(animal , name cat)node4 Node(animal , name dog) node2 Node(Person , name Alice)node1 Node(Person , name Bob) #创建关系、边r1 Relationship(node2 , know , node1) r2 Relationship(node1 , know , node3) r3 Relationship(node2 , has , node3) r4 Relationship(node4 , has , node2) #create就是实际的添加到图当中 self.graph.create(node1)self.graph.create(node2)self.graph.create(node3)self.graph.create(node4)self.graph.create(r1)self.graph.create(r2)self.graph.create(r3)self.graph.create(r4)def create_node(self, node_buy_key,node_sell_key):建立节点for name in node_buy_key:buy_node Node(self.buy, namename)#第一个参数是标签第二个参数是名字self.graph.create(buy_node)for name in node_sell_key:sell_node Node(self.sell, namename)self.graph.create(sell_node)def create_relation(self, df_data):建立联系 m 0for m in range(0, len(df_data)):#遍历数据中的每一条数据try: print(list(self.matcher.match(self.buy).where(_.name df_data[buy][m] )))print(list(self.matcher.match(self.sell).where(_.name df_data[sell][m] )))rel Relationship(self.matcher.match(self.buy).where(_.name df_data[buy][m] ).first(),df_data[money][m], self.matcher.match(self.sell).where(_.name df_data[sell][m] ).first())self.graph.create(rel)except AttributeError as e:print(e, m)
四、invoice_neo4j1.py
# -*- coding: utf-8 -*-
from dataToNeo4jClass.DataToNeo4jClass1 import DataToNeo4j
import os
import pandas as pd
#pip install py2neo5.0b1 注意版本要不对应不了invoice_data pd.read_excel(./Invoice_data_Demo.xls, header0, enginexlrd)
#print(invoice_data)#可以先阅读下文档https://py2neo.org/v4/index.htmldef data_extraction():节点数据抽取# 取出购买方名称到listnode_buy_key []for i in range(0, len(invoice_data)):#遍历数据node_buy_key.append(invoice_data[购买方名称][i])#里边有重复值node_sell_key []for i in range(0, len(invoice_data)):node_sell_key.append(invoice_data[销售方名称][i])#里边有重复值# 用set去除重复的发票名称node_buy_key list(set(node_buy_key))node_sell_key list(set(node_sell_key))# value抽出作nodenode_list_value []for i in range(0, len(invoice_data)):for n in range(1, len(invoice_data.columns)):# 取出表头名称invoice_data.columns[i]node_list_value.append(invoice_data[invoice_data.columns[n]][i])# 去重node_list_value list(set(node_list_value))# 将list中浮点及整数类型全部转成string类型node_list_value [str(i) for i in node_list_value]return node_buy_key, node_sell_key,node_list_valuedef relation_extraction():联系数据抽取links_dict {}sell_list []money_list []buy_list []for i in range(0, len(invoice_data)):#遍历数据money_list.append(invoice_data[invoice_data.columns[19]][i])#金额列sell_list.append(invoice_data[invoice_data.columns[10]][i])#销售方方名称列buy_list.append(invoice_data[invoice_data.columns[6]][i])#购买方名称列# 将数据中int类型全部转成stringsell_list [str(i) for i in sell_list]buy_list [str(i) for i in buy_list]money_list [str(i) for i in money_list]# 整合数据将三个list整合成一个dictlinks_dict[buy] buy_listlinks_dict[money] money_listlinks_dict[sell] sell_list# 将数据转成DataFramedf_data pd.DataFrame(links_dict)#print(df_data)return df_datarelation_extraction()
create_data DataToNeo4j()create_data.create_node(data_extraction()[0], data_extraction()[1])
create_data.create_relation(relation_extraction())