database
This commit is contained in:
19
model.py
19
model.py
@@ -16,10 +16,10 @@ n_iter = 10
|
||||
# 2: ['1.1.3']
|
||||
# }
|
||||
dct_list_init_remove_firm_prod = {
|
||||
140: ['1.4.5.1'],
|
||||
135: ['1.3.2.1'],
|
||||
133: ['1.4.4.1'],
|
||||
2: ['1.1.3']
|
||||
'140': ['1.4.5.1'],
|
||||
'135': ['1.3.2.1'],
|
||||
'133': ['1.4.4.1'],
|
||||
'2': ['1.1.3']
|
||||
}
|
||||
n_max_trial = 5
|
||||
dct_sample_para = {
|
||||
@@ -56,13 +56,14 @@ class Model(ap.Model):
|
||||
|
||||
# init graph firm
|
||||
Firm = pd.read_csv("Firm_amended.csv")
|
||||
Firm['Code'] = Firm['Code'].astype('string')
|
||||
Firm.fillna(0, inplace=True)
|
||||
Firm_attr = Firm.loc[:, ["Code", "Name", "Type_Region", "Revenue_Log"]]
|
||||
firm_product = []
|
||||
for _, row in Firm.loc[:, '1':].iterrows():
|
||||
firm_product.append(row[row == 1].index.to_list())
|
||||
Firm_attr.loc[:, 'Product_Code'] = firm_product
|
||||
Firm_attr.set_index('Code')
|
||||
Firm_attr.set_index('Code', inplace=True)
|
||||
G_Firm = nx.MultiDiGraph()
|
||||
G_Firm.add_nodes_from(Firm["Code"])
|
||||
|
||||
@@ -78,7 +79,7 @@ class Model(ap.Model):
|
||||
# print(product_code)
|
||||
for succ_product_code in list(G_bom.successors(product_code)):
|
||||
# print(succ_product_code)
|
||||
list_succ_firms = Firm.index[Firm[succ_product_code] ==
|
||||
list_succ_firms = Firm['Code'][Firm[succ_product_code] ==
|
||||
1].to_list()
|
||||
list_revenue_log = [
|
||||
G_Firm.nodes[succ_firm]['Revenue_Log']
|
||||
@@ -132,7 +133,7 @@ class Model(ap.Model):
|
||||
for ag_node, attr in self.firm_network.graph.nodes(data=True):
|
||||
firm_agent = FirmAgent(
|
||||
self,
|
||||
code=attr['Code'],
|
||||
code=ag_node.label,
|
||||
name=attr['Name'],
|
||||
type_region=attr['Type_Region'],
|
||||
revenue_log=attr['Revenue_Log'],
|
||||
@@ -352,5 +353,5 @@ class Model(ap.Model):
|
||||
plt.savefig("network.png")
|
||||
|
||||
|
||||
model = Model(dct_sample_para)
|
||||
model.run()
|
||||
# model = Model(dct_sample_para)
|
||||
# model.run()
|
||||
|
||||
Reference in New Issue
Block a user