database store graph

This commit is contained in:
2023-03-16 15:07:43 +08:00
parent 9435484e3f
commit 082864814b
11 changed files with 62 additions and 31 deletions

View File

@@ -8,7 +8,8 @@ import random
import pandas as pd
import numpy as np
import platform
import networkx as nx
import json
class ControllerDB:
dct_parameter = None
@@ -41,6 +42,8 @@ class ControllerDB:
Firm = pd.read_csv("Firm_amended.csv")
Firm['Code'] = Firm['Code'].astype('string')
Firm.fillna(0, inplace=True)
# fill dct_lst_init_remove_firm_prod
list_dct = []
for _, row in Firm.iterrows():
code = row['Code']
@@ -52,19 +55,35 @@ class ControllerDB:
list_dct = [{'133': ['1.4.4.1']}]
# list_dct = [{'2': ['1.1.3']}]
# list_dct = [{'135': ['1.3.2.1']}]
# fill g_bom
BomNodes = pd.read_csv('BomNodes.csv', index_col=0)
BomNodes.set_index('Code', inplace=True)
BomCateNet = pd.read_csv('BomCateNet.csv', index_col=0)
BomCateNet.fillna(0, inplace=True)
g_bom = nx.from_pandas_adjacency(BomCateNet.T,
create_using=nx.MultiDiGraph())
bom_labels_dict = {}
for code in g_bom.nodes:
bom_labels_dict[code] = BomNodes.loc[code].to_dict()
nx.set_node_attributes(g_bom, bom_labels_dict)
g_product_js = json.dumps(nx.adjacency_data(g_bom))
# insert exp
for idx_exp, dct in enumerate(list_dct):
self.add_experiment_1(idx_exp, self.dct_parameter['n_max_trial'],
dct)
dct, g_product_js) # same g_bom for all exp
print(f'Inserted experiment for exp {idx_exp}!')
def add_experiment_1(self, idx_exp, n_max_trial,
dct_lst_init_remove_firm_prod):
dct_lst_init_remove_firm_prod, g_bom):
e = Experiment(
idx_exp=idx_exp,
n_sample=int(self.dct_parameter['n_sample']),
n_iter=int(self.dct_parameter['n_iter']),
n_max_trial=n_max_trial,
dct_lst_init_remove_firm_prod=dct_lst_init_remove_firm_prod)
dct_lst_init_remove_firm_prod=dct_lst_init_remove_firm_prod,
g_bom=g_bom)
db_session.add(e)
db_session.commit()