Data:
Name of purchaser | Name of seller | amount of money |
---|---|---|
Electronic toll center of Shandong Expressway Group Co., Ltd | Harbin told the company | 2000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 2000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 100W level transaction |
Hunan daoyue expressway industry Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 2000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 2000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 2000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei a Shen Nan Expressway Development Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hubei CCCC Jiatong Expressway Development Co., Ltd | 2000W level transaction |
Hubei a Shen Nan Expressway Development Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 100W level transaction |
Hubei a Shen Nan Expressway Development Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 500W level transaction |
Hubei a Shen Nan Expressway Development Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 100W level transaction |
Hubei a Shen Nan Expressway Development Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 500W level transaction |
Hubei CCCC Jiatong Expressway Development Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 2000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Hunan daoyue expressway industry Co., Ltd | 2000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 8000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 8000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 8000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 8000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Modern Investment Co., Ltd | Electronic toll center of Shandong Expressway Group Co., Ltd | 2000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Modern Investment Co., Ltd | 8000W level transaction |
Hunan daoyue expressway industry Co., Ltd | Modern Investment Co., Ltd | 8000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Modern Investment Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Modern Investment Co., Ltd | 500W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Modern Investment Co., Ltd | 2000W level transaction |
Electronic toll center of Shandong Expressway Group Co., Ltd | Modern Investment Co., Ltd | 100W level transaction |
from py2neo import Node, Graph, Relationship, NodeMatcher import pandas as pd class DataToNeo4j: def __init__(self): # Connect to database link = Graph("http:localhost:7474", username="neo4j", password="rhino1qaz@wsx") self.graph = link # Establish node self.buy = "buy" self.sell = "sell" self.graph.delete_all() # Empty the database first self.matcher = NodeMatcher(link) # Then define a matcher def create_node(self, node_buy_key, node_sell_key): """Establish node""" for name in node_buy_key: buy_node = Node(self.buy, name=name) self.graph.create(buy_node) for name in node_sell_key: sell_node = Node(self.sell, name=name) self.graph.create(sell_node) def create_relation(self, df_data): """Establish contact""" for m in range(0, len(df_data)): # print(df_data['buy'][m], df_data['money'][m], 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) class Processor: def __init__(self, path): self.invoice_data = pd.read_excel(path, header=0) def node_extraction(self): # Take the buyer's name to the list node_buy_key = self.invoice_data['Name of purchaser'].tolist() node_sell_key = self.invoice_data['Name of seller'].tolist() # Remove duplicate invoice names node_buy_key = list(set(node_buy_key)) node_sell_key = list(set(node_sell_key)) return node_buy_key, node_sell_key def relation_extraction(self): """Contact data extraction""" links_dict = {} sell_list = [] money_list = [] buy_list = [] for i in range(0, len(self.invoice_data)): money_list.append(self.invoice_data[self.invoice_data.columns[19]][i]) # amount of money sell_list.append(self.invoice_data[self.invoice_data.columns[10]][i]) # Name of seller buy_list.append(self.invoice_data[self.invoice_data.columns[6]][i]) # Name of purchaser # Convert all int types in the data to string sell_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] # Integrate the data and integrate the three list s into a dict links_dict['buy'] = buy_list links_dict['money'] = money_list links_dict['sell'] = sell_list # Convert data to DataFrame df_data = pd.DataFrame(links_dict) return df_data if __name__ == '__main__': # dataToNeo4j = DataToNeo4j() path = './Invoice_data_Demo.xls' processor = Processor(path) node_buy_key, node_sell_key = processor.node_extraction() print(node_buy_key) print(node_sell_key) df_data = processor.relation_extraction() dataToNeo4j = DataToNeo4j() dataToNeo4j.create_node(node_buy_key, node_sell_key) dataToNeo4j.create_relation(df_data)
result:
