模型修改部分-修改消耗逻辑
This commit is contained in:
parent
f7354a4a44
commit
2b59780e20
|
@ -31,6 +31,13 @@
|
||||||
</Attribute>
|
</Attribute>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="\input_data\input_firm_data\firm_amended.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="\input_data\input_firm_data\firms_devices.csv">
|
<entry key="\input_data\input_firm_data\firms_devices.csv">
|
||||||
<value>
|
<value>
|
||||||
<Attribute>
|
<Attribute>
|
||||||
|
@ -129,6 +136,13 @@
|
||||||
</Attribute>
|
</Attribute>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="\output_result\risk\count_dcp.csv">
|
<entry key="\output_result\risk\count_dcp.csv">
|
||||||
<value>
|
<value>
|
||||||
<Attribute>
|
<Attribute>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,8 @@
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
import networkx as nx
|
||||||
from mesa import Model
|
from mesa import Model
|
||||||
|
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
@ -36,6 +39,9 @@ class Computation:
|
||||||
dct_sample_para = {'sample': sample_random,
|
dct_sample_para = {'sample': sample_random,
|
||||||
'seed': sample_random.seed,
|
'seed': sample_random.seed,
|
||||||
**dct_exp}
|
**dct_exp}
|
||||||
|
|
||||||
|
product_network_test = nx.adjacency_graph(json.loads(dct_sample_para['g_bom']))
|
||||||
|
|
||||||
model = MyModel(dct_sample_para)
|
model = MyModel(dct_sample_para)
|
||||||
for i in range(1):
|
for i in range(1):
|
||||||
model.step()
|
model.step()
|
||||||
|
|
|
@ -39,7 +39,7 @@ class ControllerDB:
|
||||||
self.lst_saved_s_id = []
|
self.lst_saved_s_id = []
|
||||||
|
|
||||||
self.experiment_data = []
|
self.experiment_data = []
|
||||||
self.batch_size = 2000
|
self.batch_size = 5000
|
||||||
# 根据需求设置每批次的大小
|
# 根据需求设置每批次的大小
|
||||||
|
|
||||||
def init_tables(self):
|
def init_tables(self):
|
||||||
|
@ -79,29 +79,18 @@ class ControllerDB:
|
||||||
# 结点属性值 相当于 图上点的 原始 产品名称
|
# 结点属性值 相当于 图上点的 原始 产品名称
|
||||||
bom_nodes = pd.read_csv('input_data/input_product_data/BomNodes.csv')
|
bom_nodes = pd.read_csv('input_data/input_product_data/BomNodes.csv')
|
||||||
bom_nodes['Code'] = bom_nodes['Code'].astype(str)
|
bom_nodes['Code'] = bom_nodes['Code'].astype(str)
|
||||||
bom_nodes.set_index('Code', inplace=True)
|
bom_nodes.set_index('Index', inplace=True)
|
||||||
# bom_cate_net = pd.read_csv('input_data/input_product_data/BomCateNet.csv', index_col=0)
|
|
||||||
# bom_cate_net.fillna(0, inplace=True)
|
|
||||||
# # 创建 可以多边的有向图 同时 转置操作 使得 上游指向下游结点 也就是 1.1.1 - 1.1 类似这种
|
|
||||||
# # 将第一列转换为字符串类型
|
|
||||||
# print("sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss")
|
|
||||||
# print(bom_cate_net.columns)
|
|
||||||
# print(bom_cate_net.index) # 打印行标题(索引)
|
|
||||||
# print(bom_cate_net.iloc[:, 0]) # 打印第一列的内容
|
|
||||||
#
|
|
||||||
# g_bom = nx.from_pandas_adjacency(bom_cate_net.T,
|
|
||||||
# create_using=nx.MultiDiGraph())
|
|
||||||
|
|
||||||
bom_cate_net = pd.read_csv('input_data/input_product_data/合成结点.csv')
|
bom_cate_net = pd.read_csv('input_data/input_product_data/合成结点.csv')
|
||||||
g_bom = nx.from_pandas_edgelist(bom_cate_net, source='UPID', target='ID', create_using=nx.MultiDiGraph())
|
g_bom = nx.from_pandas_edgelist(bom_cate_net, source='UPID', target='ID', create_using=nx.MultiDiGraph())
|
||||||
# 填充每一个结点 的具体内容 通过 相同的 code 并且通过BomNodes.loc[code].to_dict()字典化 格式类似 格式 { code(0) : {level: 0 ,name: 工业互联网 }}
|
# 填充每一个结点 的具体内容 通过 相同的 code 并且通过BomNodes.loc[code].to_dict()字典化 格式类似 格式 { code(0) : {level: 0 ,name: 工业互联网 }}
|
||||||
bom_labels_dict = {}
|
bom_labels_dict = {}
|
||||||
for code in g_bom.nodes:
|
for index in g_bom.nodes:
|
||||||
try:
|
try:
|
||||||
int_code = int(code)
|
bom_labels_dict[index] = bom_nodes.loc[index].to_dict()
|
||||||
bom_labels_dict[code] = bom_nodes.loc[int_code].to_dict()
|
# print(bom_labels_dict[index])
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print(f"节点 {code} 不存在于 bom_nodes 中")
|
print(f"节点 {index} 不存在于 bom_nodes 中")
|
||||||
# 分配属性 给每一个结点 获得类似 格式:{1: {'label': 'A', 'value': 10},
|
# 分配属性 给每一个结点 获得类似 格式:{1: {'label': 'A', 'value': 10},
|
||||||
nx.set_node_attributes(g_bom, bom_labels_dict)
|
nx.set_node_attributes(g_bom, bom_labels_dict)
|
||||||
# 改为json 格式
|
# 改为json 格式
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
Firm_Code,Product_Code
|
Firm_Code,Product_Code
|
||||||
|
6,7
|
||||||
|
7,7
|
||||||
29954548,7
|
29954548,7
|
||||||
169456313,7
|
169456313,7
|
||||||
771821595,7
|
771821595,7
|
||||||
|
@ -5815,7 +5817,6 @@ Firm_Code,Product_Code
|
||||||
3375823631,2717
|
3375823631,2717
|
||||||
3384021594,2717
|
3384021594,2717
|
||||||
3384489464,2717
|
3384489464,2717
|
||||||
3387414634,2717
|
|
||||||
3391140557,2717
|
3391140557,2717
|
||||||
3391580446,2717
|
3391580446,2717
|
||||||
3394344425,2717
|
3394344425,2717
|
||||||
|
@ -5853,7 +5854,6 @@ Firm_Code,Product_Code
|
||||||
4728160558,2717
|
4728160558,2717
|
||||||
4977024731,2717
|
4977024731,2717
|
||||||
5075022186,2717
|
5075022186,2717
|
||||||
5080328229,2717
|
|
||||||
5082745863,2717
|
5082745863,2717
|
||||||
11174854725,2717
|
11174854725,2717
|
||||||
11197373335,2717
|
11197373335,2717
|
||||||
|
@ -5982,7 +5982,6 @@ Firm_Code,Product_Code
|
||||||
3339447871,2718
|
3339447871,2718
|
||||||
3341201089,2718
|
3341201089,2718
|
||||||
3393520654,2718
|
3393520654,2718
|
||||||
3417211306,2718
|
|
||||||
4050411188,2718
|
4050411188,2718
|
||||||
1452048,32338
|
1452048,32338
|
||||||
2010673,32338
|
2010673,32338
|
||||||
|
@ -10025,7 +10024,6 @@ Firm_Code,Product_Code
|
||||||
2327979389,32441
|
2327979389,32441
|
||||||
3226664625,32441
|
3226664625,32441
|
||||||
3462551351,32441
|
3462551351,32441
|
||||||
3315213370,32442
|
|
||||||
829768,32443
|
829768,32443
|
||||||
961017,32443
|
961017,32443
|
||||||
6292428,32443
|
6292428,32443
|
||||||
|
@ -10098,7 +10096,6 @@ Firm_Code,Product_Code
|
||||||
3395900897,32443
|
3395900897,32443
|
||||||
4187134530,32443
|
4187134530,32443
|
||||||
5235871870,32443
|
5235871870,32443
|
||||||
1273878359,32444
|
|
||||||
863079,32445
|
863079,32445
|
||||||
1452048,32445
|
1452048,32445
|
||||||
4928854,32445
|
4928854,32445
|
||||||
|
@ -10203,7 +10200,6 @@ Firm_Code,Product_Code
|
||||||
3359835624,32445
|
3359835624,32445
|
||||||
3374200023,32445
|
3374200023,32445
|
||||||
3383829951,32445
|
3383829951,32445
|
||||||
3387414634,32445
|
|
||||||
3407754893,32445
|
3407754893,32445
|
||||||
3414432268,32445
|
3414432268,32445
|
||||||
3417604299,32445
|
3417604299,32445
|
||||||
|
@ -12704,7 +12700,6 @@ Firm_Code,Product_Code
|
||||||
1662628216,34566
|
1662628216,34566
|
||||||
1718070442,34566
|
1718070442,34566
|
||||||
2311333794,34566
|
2311333794,34566
|
||||||
2311554061,34566
|
|
||||||
2312469536,34566
|
2312469536,34566
|
||||||
2313316346,34566
|
2313316346,34566
|
||||||
2314838109,34566
|
2314838109,34566
|
||||||
|
@ -12891,7 +12886,6 @@ Firm_Code,Product_Code
|
||||||
2707711529,34566
|
2707711529,34566
|
||||||
2735580560,34566
|
2735580560,34566
|
||||||
2745792038,34566
|
2745792038,34566
|
||||||
2784653609,34566
|
|
||||||
2787318020,34566
|
2787318020,34566
|
||||||
2788202283,34566
|
2788202283,34566
|
||||||
2794900565,34566
|
2794900565,34566
|
||||||
|
@ -13434,10 +13428,8 @@ Firm_Code,Product_Code
|
||||||
3193452645,34574
|
3193452645,34574
|
||||||
3240604547,34574
|
3240604547,34574
|
||||||
3340308357,34574
|
3340308357,34574
|
||||||
3387414634,34574
|
|
||||||
3415340571,34574
|
3415340571,34574
|
||||||
4114133480,34574
|
4114133480,34574
|
||||||
5080328229,34574
|
|
||||||
11209117004,34574
|
11209117004,34574
|
||||||
5979030,36914
|
5979030,36914
|
||||||
5979313,36914
|
5979313,36914
|
||||||
|
@ -13724,7 +13716,6 @@ Firm_Code,Product_Code
|
||||||
18729611,56321
|
18729611,56321
|
||||||
25624519,56321
|
25624519,56321
|
||||||
26516263,56321
|
26516263,56321
|
||||||
27218524,56321
|
|
||||||
27892215,56321
|
27892215,56321
|
||||||
42901962,56321
|
42901962,56321
|
||||||
57430434,56321
|
57430434,56321
|
||||||
|
@ -13771,7 +13762,6 @@ Firm_Code,Product_Code
|
||||||
2328469644,56321
|
2328469644,56321
|
||||||
2329948539,56321
|
2329948539,56321
|
||||||
2330435233,56321
|
2330435233,56321
|
||||||
2335686424,56321
|
|
||||||
2339188563,56321
|
2339188563,56321
|
||||||
2342317074,56321
|
2342317074,56321
|
||||||
2346409693,56321
|
2346409693,56321
|
||||||
|
@ -13781,13 +13771,11 @@ Firm_Code,Product_Code
|
||||||
2388525637,56321
|
2388525637,56321
|
||||||
2441725544,56321
|
2441725544,56321
|
||||||
2568380877,56321
|
2568380877,56321
|
||||||
2784653609,56321
|
|
||||||
2985599329,56321
|
2985599329,56321
|
||||||
3007255509,56321
|
3007255509,56321
|
||||||
3019316903,56321
|
3019316903,56321
|
||||||
3041197460,56321
|
3041197460,56321
|
||||||
3049154839,56321
|
3049154839,56321
|
||||||
3049563940,56321
|
|
||||||
3121176272,56321
|
3121176272,56321
|
||||||
3146829971,56321
|
3146829971,56321
|
||||||
3164072929,56321
|
3164072929,56321
|
||||||
|
@ -13797,12 +13785,10 @@ Firm_Code,Product_Code
|
||||||
3218443122,56321
|
3218443122,56321
|
||||||
3269126593,56321
|
3269126593,56321
|
||||||
3270983544,56321
|
3270983544,56321
|
||||||
3275082457,56321
|
|
||||||
3288105727,56321
|
3288105727,56321
|
||||||
3309861393,56321
|
3309861393,56321
|
||||||
3310322470,56321
|
3310322470,56321
|
||||||
3312199997,56321
|
3312199997,56321
|
||||||
3387414634,56321
|
|
||||||
3400353135,56321
|
3400353135,56321
|
||||||
3403941251,56321
|
3403941251,56321
|
||||||
3453584345,56321
|
3453584345,56321
|
||||||
|
@ -13810,7 +13796,6 @@ Firm_Code,Product_Code
|
||||||
4060785478,56321
|
4060785478,56321
|
||||||
4062109631,56321
|
4062109631,56321
|
||||||
4541270393,56321
|
4541270393,56321
|
||||||
5080328229,56321
|
|
||||||
11194786363,56321
|
11194786363,56321
|
||||||
640320,56322
|
640320,56322
|
||||||
961017,56322
|
961017,56322
|
||||||
|
@ -13833,7 +13818,6 @@ Firm_Code,Product_Code
|
||||||
26102189,56322
|
26102189,56322
|
||||||
26516263,56322
|
26516263,56322
|
||||||
27042865,56322
|
27042865,56322
|
||||||
27218524,56322
|
|
||||||
28667694,56322
|
28667694,56322
|
||||||
33358838,56322
|
33358838,56322
|
||||||
33822284,56322
|
33822284,56322
|
||||||
|
@ -14250,7 +14234,6 @@ Firm_Code,Product_Code
|
||||||
2334362489,56322
|
2334362489,56322
|
||||||
2334642264,56322
|
2334642264,56322
|
||||||
2334685597,56322
|
2334685597,56322
|
||||||
2335686424,56322
|
|
||||||
2335911998,56322
|
2335911998,56322
|
||||||
2336951312,56322
|
2336951312,56322
|
||||||
2337333600,56322
|
2337333600,56322
|
||||||
|
@ -14392,7 +14375,6 @@ Firm_Code,Product_Code
|
||||||
2454080715,56322
|
2454080715,56322
|
||||||
2454364226,56322
|
2454364226,56322
|
||||||
2549748974,56322
|
2549748974,56322
|
||||||
2784653609,56322
|
|
||||||
2807640082,56322
|
2807640082,56322
|
||||||
2820140348,56322
|
2820140348,56322
|
||||||
2943360015,56322
|
2943360015,56322
|
||||||
|
@ -14445,7 +14427,6 @@ Firm_Code,Product_Code
|
||||||
3046734929,56322
|
3046734929,56322
|
||||||
3047432238,56322
|
3047432238,56322
|
||||||
3048263744,56322
|
3048263744,56322
|
||||||
3049563940,56322
|
|
||||||
3053428173,56322
|
3053428173,56322
|
||||||
3053827066,56322
|
3053827066,56322
|
||||||
3053874899,56322
|
3053874899,56322
|
||||||
|
@ -14547,7 +14528,6 @@ Firm_Code,Product_Code
|
||||||
3269509541,56322
|
3269509541,56322
|
||||||
3270983544,56322
|
3270983544,56322
|
||||||
3272228873,56322
|
3272228873,56322
|
||||||
3275082457,56322
|
|
||||||
3276276473,56322
|
3276276473,56322
|
||||||
3276806203,56322
|
3276806203,56322
|
||||||
3280089923,56322
|
3280089923,56322
|
||||||
|
@ -14591,7 +14571,6 @@ Firm_Code,Product_Code
|
||||||
3381895548,56322
|
3381895548,56322
|
||||||
3384021594,56322
|
3384021594,56322
|
||||||
3386142122,56322
|
3386142122,56322
|
||||||
3387414634,56322
|
|
||||||
3392439831,56322
|
3392439831,56322
|
||||||
3395273704,56322
|
3395273704,56322
|
||||||
3395544335,56322
|
3395544335,56322
|
||||||
|
@ -14634,7 +14613,6 @@ Firm_Code,Product_Code
|
||||||
4314826963,56322
|
4314826963,56322
|
||||||
4342133203,56322
|
4342133203,56322
|
||||||
4518793468,56322
|
4518793468,56322
|
||||||
5080328229,56322
|
|
||||||
5170566512,56322
|
5170566512,56322
|
||||||
5227003959,56322
|
5227003959,56322
|
||||||
11163946716,56322
|
11163946716,56322
|
||||||
|
@ -14675,30 +14653,23 @@ Firm_Code,Product_Code
|
||||||
515770253,56323
|
515770253,56323
|
||||||
519195163,56323
|
519195163,56323
|
||||||
578458519,56323
|
578458519,56323
|
||||||
579145151,56323
|
|
||||||
648145286,56323
|
648145286,56323
|
||||||
655053188,56323
|
655053188,56323
|
||||||
724699853,56323
|
724699853,56323
|
||||||
737770776,56323
|
737770776,56323
|
||||||
756272716,56323
|
756272716,56323
|
||||||
769007667,56323
|
769007667,56323
|
||||||
781863255,56323
|
|
||||||
828320335,56323
|
828320335,56323
|
||||||
830662620,56323
|
830662620,56323
|
||||||
835660918,56323
|
835660918,56323
|
||||||
928405229,56323
|
|
||||||
930767828,56323
|
930767828,56323
|
||||||
1020971686,56323
|
1020971686,56323
|
||||||
1171719000,56323
|
1171719000,56323
|
||||||
1196081613,56323
|
1196081613,56323
|
||||||
1281892063,56323
|
|
||||||
1283152579,56323
|
|
||||||
1307998566,56323
|
1307998566,56323
|
||||||
1320580022,56323
|
|
||||||
1420260418,56323
|
1420260418,56323
|
||||||
1428867455,56323
|
1428867455,56323
|
||||||
2310078704,56323
|
2310078704,56323
|
||||||
2311554061,56323
|
|
||||||
2313858141,56323
|
2313858141,56323
|
||||||
2313862397,56323
|
2313862397,56323
|
||||||
2316430101,56323
|
2316430101,56323
|
||||||
|
@ -14720,11 +14691,9 @@ Firm_Code,Product_Code
|
||||||
2352536665,56323
|
2352536665,56323
|
||||||
2353049653,56323
|
2353049653,56323
|
||||||
2353542014,56323
|
2353542014,56323
|
||||||
2354579046,56323
|
|
||||||
2358443746,56323
|
2358443746,56323
|
||||||
2358890410,56323
|
2358890410,56323
|
||||||
2359644835,56323
|
2359644835,56323
|
||||||
2375567426,56323
|
|
||||||
2813351721,56323
|
2813351721,56323
|
||||||
2944851453,56323
|
2944851453,56323
|
||||||
2989110680,56323
|
2989110680,56323
|
||||||
|
@ -14738,7 +14707,6 @@ Firm_Code,Product_Code
|
||||||
3145216638,56323
|
3145216638,56323
|
||||||
3147315589,56323
|
3147315589,56323
|
||||||
3148373610,56323
|
3148373610,56323
|
||||||
3157908852,56323
|
|
||||||
3178503917,56323
|
3178503917,56323
|
||||||
3190725108,56323
|
3190725108,56323
|
||||||
3194480206,56323
|
3194480206,56323
|
||||||
|
@ -14752,12 +14720,8 @@ Firm_Code,Product_Code
|
||||||
3333770952,56323
|
3333770952,56323
|
||||||
3343051793,56323
|
3343051793,56323
|
||||||
3355136417,56323
|
3355136417,56323
|
||||||
3355311700,56323
|
|
||||||
3384021594,56323
|
3384021594,56323
|
||||||
3387414634,56323
|
|
||||||
3391580446,56323
|
3391580446,56323
|
||||||
3417211306,56323
|
|
||||||
3424960996,56323
|
|
||||||
3479493493,56323
|
3479493493,56323
|
||||||
4001232767,56323
|
4001232767,56323
|
||||||
4018874937,56323
|
4018874937,56323
|
||||||
|
@ -14765,14 +14729,8 @@ Firm_Code,Product_Code
|
||||||
4132230808,56323
|
4132230808,56323
|
||||||
4518793468,56323
|
4518793468,56323
|
||||||
5075022186,56323
|
5075022186,56323
|
||||||
5080328229,56323
|
|
||||||
5268652928,56323
|
|
||||||
11169314959,56323
|
|
||||||
11196261229,56323
|
11196261229,56323
|
||||||
11198973632,56323
|
11198973632,56323
|
||||||
11201118913,56323
|
|
||||||
11202794098,56323
|
|
||||||
11222347815,56323
|
|
||||||
1452048,56341
|
1452048,56341
|
||||||
11807506,56341
|
11807506,56341
|
||||||
23463174,56341
|
23463174,56341
|
||||||
|
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
Code,Index,Name,产业种类
|
Code,Index,Name,产业种类
|
||||||
32338,2,硅原材料,0
|
32338,7,硅原材料,0
|
||||||
32445,8,光刻胶及其配套试剂,0
|
32445,8,光刻胶及其配套试剂,0
|
||||||
56341,9,蚀刻液,0
|
56341,9,蚀刻液,0
|
||||||
7,10,氟化硅,0
|
7,10,氟化硅,0
|
||||||
|
|
|
|
@ -1,241 +1,241 @@
|
||||||
产业id,消耗材料id,消耗量
|
,产业id,消耗材料id
|
||||||
36914,47,255111.0204
|
0,36914,32338
|
||||||
36914,49,255111.0204
|
1,36914,32338
|
||||||
36914,44,255111.0204
|
2,36914,32338
|
||||||
36914,15,12136238.88
|
3,36914,32440
|
||||||
36914,18,255111.0204
|
4,36914,46505
|
||||||
36914,20,93744.7931
|
5,36914,32446
|
||||||
36914,22,75.22587792
|
6,36914,32433
|
||||||
36914,23,25897.2899
|
7,36914,32443
|
||||||
36914,25,324.0499357
|
8,36914,32435
|
||||||
36914,31,361.9578012
|
9,36914,32439
|
||||||
36914,36,90.93237991
|
10,36914,56321
|
||||||
36914,15,12136238.88
|
11,36914,32440
|
||||||
36914,18,255111.0204
|
12,36914,46505
|
||||||
36914,20,93744.7931
|
13,36914,32446
|
||||||
36914,22,75.22587792
|
14,36914,32433
|
||||||
36914,23,25897.2899
|
15,36914,32443
|
||||||
36914,25,324.0499357
|
16,36914,32435
|
||||||
36914,31,361.9578012
|
17,36914,32439
|
||||||
36914,46,255111.0204
|
18,36914,32338
|
||||||
32338,2,255111.0204
|
19,32338,32338
|
||||||
32338,15,12136238.88
|
20,32338,32440
|
||||||
32338,18,255111.0204
|
21,32338,46505
|
||||||
32338,20,93744.7931
|
22,32338,32446
|
||||||
32338,22,75.22587792
|
23,32338,32433
|
||||||
32338,23,25897.2899
|
24,32338,32443
|
||||||
32338,25,324.0499357
|
25,32338,32435
|
||||||
32338,27,251973.3182
|
26,32338,32438
|
||||||
32338,2,255111.0204
|
27,32338,32338
|
||||||
32338,15,12136238.88
|
28,32338,32440
|
||||||
32338,18,255111.0204
|
29,32338,46505
|
||||||
32338,20,93744.7931
|
30,32338,32446
|
||||||
32338,22,75.22587792
|
31,32338,32433
|
||||||
32338,23,25897.2899
|
32,32338,32443
|
||||||
32338,25,324.0499357
|
33,32338,32435
|
||||||
32338,27,251973.3182
|
34,32338,32438
|
||||||
32338,15,12136238.88
|
35,32338,32440
|
||||||
32338,18,255111.0204
|
36,32338,46505
|
||||||
32338,20,93744.7931
|
37,32338,32446
|
||||||
32338,22,75.22587792
|
38,32338,32433
|
||||||
32338,23,25897.2899
|
39,32338,32443
|
||||||
32338,25,324.0499357
|
40,32338,32435
|
||||||
32338,27,251973.3182
|
41,32338,32438
|
||||||
32338,32,54.21991745
|
42,32338,56320
|
||||||
32338,15,12136238.88
|
43,32338,32440
|
||||||
32338,18,255111.0204
|
44,32338,46505
|
||||||
32338,20,93744.7931
|
45,32338,32446
|
||||||
32338,22,75.22587792
|
46,32338,32433
|
||||||
32338,23,25897.2899
|
47,32338,32443
|
||||||
32338,25,324.0499357
|
48,32338,32435
|
||||||
32338,27,251973.3182
|
49,32338,32438
|
||||||
32338,33,153200.7295
|
50,32338,56322
|
||||||
32338,15,12136238.88
|
51,32338,32440
|
||||||
32338,18,255111.0204
|
52,32338,46505
|
||||||
32338,20,93744.7931
|
53,32338,32446
|
||||||
32338,22,75.22587792
|
54,32338,32433
|
||||||
32338,23,25897.2899
|
55,32338,32443
|
||||||
32338,25,324.0499357
|
56,32338,32435
|
||||||
32338,27,251973.3182
|
57,32338,32438
|
||||||
32338,34,1.058122239
|
58,32338,56319
|
||||||
32338,15,12136238.88
|
59,32338,32440
|
||||||
32338,18,255111.0204
|
60,32338,46505
|
||||||
32338,20,93744.7931
|
61,32338,32446
|
||||||
32338,22,75.22587792
|
62,32338,32433
|
||||||
32338,23,25897.2899
|
63,32338,32443
|
||||||
32338,25,324.0499357
|
64,32338,32435
|
||||||
32338,27,251973.3182
|
65,32338,32438
|
||||||
32338,35,1973.630646
|
66,32338,56323
|
||||||
32338,19,41.8950274
|
67,32338,32449
|
||||||
32338,20,93744.7931
|
68,32338,32446
|
||||||
32338,22,75.22587792
|
69,32338,32433
|
||||||
32338,23,25897.2899
|
70,32338,32443
|
||||||
32338,25,324.0499357
|
71,32338,32435
|
||||||
32338,28,501.5058528
|
72,32338,32447
|
||||||
32338,29,17085.44484
|
73,32338,32436
|
||||||
32338,27,251973.3182
|
74,32338,32438
|
||||||
32338,40,202.540151
|
75,32338,36914
|
||||||
32338,19,41.8950274
|
76,32338,32449
|
||||||
32338,20,93744.7931
|
77,32338,32446
|
||||||
32338,22,75.22587792
|
78,32338,32433
|
||||||
32338,23,25897.2899
|
79,32338,32443
|
||||||
32338,25,324.0499357
|
80,32338,32435
|
||||||
32338,28,501.5058528
|
81,32338,32447
|
||||||
32338,29,17085.44484
|
82,32338,32436
|
||||||
32338,27,251973.3182
|
83,32338,32438
|
||||||
32338,38,202.540151
|
84,32338,36914
|
||||||
32338,19,41.8950274
|
85,32338,32449
|
||||||
32338,20,93744.7931
|
86,32338,32446
|
||||||
32338,22,75.22587792
|
87,32338,32433
|
||||||
32338,23,25897.2899
|
88,32338,32443
|
||||||
32338,25,324.0499357
|
89,32338,32435
|
||||||
32338,28,501.5058528
|
90,32338,32447
|
||||||
32338,29,17085.44484
|
91,32338,32436
|
||||||
32338,27,251973.3182
|
92,32338,32438
|
||||||
32338,41,202.540151
|
93,32338,36914
|
||||||
32338,19,41.8950274
|
94,32338,32449
|
||||||
32338,20,93744.7931
|
95,32338,32446
|
||||||
32338,22,75.22587792
|
96,32338,32433
|
||||||
32338,23,25897.2899
|
97,32338,32443
|
||||||
32338,25,324.0499357
|
98,32338,32435
|
||||||
32338,28,501.5058528
|
99,32338,32447
|
||||||
32338,29,17085.44484
|
100,32338,32436
|
||||||
32338,27,251973.3182
|
101,32338,32438
|
||||||
32338,39,202.540151
|
102,32338,36914
|
||||||
32338,19,41.8950274
|
103,32338,32449
|
||||||
32338,20,93744.7931
|
104,32338,32446
|
||||||
32338,22,75.22587792
|
105,32338,32433
|
||||||
32338,23,25897.2899
|
106,32338,32443
|
||||||
32338,25,324.0499357
|
107,32338,32435
|
||||||
32338,28,501.5058528
|
108,32338,32447
|
||||||
32338,29,17085.44484
|
109,32338,32436
|
||||||
32338,27,251973.3182
|
110,32338,32438
|
||||||
32338,43,202.540151
|
111,32338,36914
|
||||||
32338,19,41.8950274
|
112,32338,32449
|
||||||
32338,20,93744.7931
|
113,32338,32446
|
||||||
32338,22,75.22587792
|
114,32338,32433
|
||||||
32338,23,25897.2899
|
115,32338,32443
|
||||||
32338,25,324.0499357
|
116,32338,32435
|
||||||
32338,28,501.5058528
|
117,32338,32447
|
||||||
32338,29,17085.44484
|
118,32338,32436
|
||||||
32338,27,251973.3182
|
119,32338,32438
|
||||||
32338,42,202.540151
|
120,32338,36914
|
||||||
2717,2,255111.0204
|
121,2717,32338
|
||||||
2717,8,361.9578012
|
122,2717,32445
|
||||||
2717,9,255111.0204
|
123,2717,56341
|
||||||
2717,10,950.9542139
|
124,2717,7
|
||||||
2717,11,361.9578012
|
125,2717,46504
|
||||||
2717,17,2420351.677
|
126,2717,32451
|
||||||
2717,19,41.8950274
|
127,2717,32449
|
||||||
2717,20,93744.7931
|
128,2717,32446
|
||||||
2717,21,121.8232841
|
129,2717,32442
|
||||||
2717,23,25897.2899
|
130,2717,32443
|
||||||
2717,24,8314.140278
|
131,2717,32450
|
||||||
2717,25,324.0499357
|
132,2717,32435
|
||||||
2717,28,501.5058528
|
133,2717,32447
|
||||||
2717,31,361.9578012
|
134,2717,32439
|
||||||
2717,44,255111.0204
|
135,2717,32338
|
||||||
2717,45,255111.0204
|
136,2717,32338
|
||||||
2714,8,361.9578012
|
137,2714,32445
|
||||||
2714,9,255111.0204
|
138,2714,56341
|
||||||
2714,10,950.9542139
|
139,2714,7
|
||||||
2714,11,361.9578012
|
140,2714,46504
|
||||||
2714,17,2420351.677
|
141,2714,32451
|
||||||
2714,18,255111.0204
|
142,2714,46505
|
||||||
2714,19,41.8950274
|
143,2714,32449
|
||||||
2714,20,93744.7931
|
144,2714,32446
|
||||||
2714,23,25897.2899
|
145,2714,32443
|
||||||
2714,24,8314.140278
|
146,2714,32450
|
||||||
2714,28,501.5058528
|
147,2714,32447
|
||||||
2714,31,361.9578012
|
148,2714,32439
|
||||||
2715,8,361.9578012
|
149,2715,32445
|
||||||
2715,9,255111.0204
|
150,2715,56341
|
||||||
2715,10,950.9542139
|
151,2715,7
|
||||||
2715,11,361.9578012
|
152,2715,46504
|
||||||
2715,17,2420351.677
|
153,2715,32451
|
||||||
2715,18,255111.0204
|
154,2715,46505
|
||||||
2715,19,41.8950274
|
155,2715,32449
|
||||||
2715,20,93744.7931
|
156,2715,32446
|
||||||
2715,23,25897.2899
|
157,2715,32443
|
||||||
2715,24,8314.140278
|
158,2715,32450
|
||||||
2715,28,501.5058528
|
159,2715,32447
|
||||||
2715,31,361.9578012
|
160,2715,32439
|
||||||
2716,8,361.9578012
|
161,2716,32445
|
||||||
2716,9,255111.0204
|
162,2716,56341
|
||||||
2716,10,950.9542139
|
163,2716,7
|
||||||
2716,11,361.9578012
|
164,2716,46504
|
||||||
2716,17,2420351.677
|
165,2716,32451
|
||||||
2716,18,255111.0204
|
166,2716,46505
|
||||||
2716,19,41.8950274
|
167,2716,32449
|
||||||
2716,20,93744.7931
|
168,2716,32446
|
||||||
2716,23,25897.2899
|
169,2716,32443
|
||||||
2716,24,8314.140278
|
170,2716,32450
|
||||||
2716,28,501.5058528
|
171,2716,32447
|
||||||
2716,31,361.9578012
|
172,2716,32439
|
||||||
2718,8,361.9578012
|
173,2718,32445
|
||||||
2718,9,255111.0204
|
174,2718,56341
|
||||||
2718,10,950.9542139
|
175,2718,7
|
||||||
2718,11,361.9578012
|
176,2718,46504
|
||||||
2718,17,2420351.677
|
177,2718,32451
|
||||||
2718,18,255111.0204
|
178,2718,46505
|
||||||
2718,19,41.8950274
|
179,2718,32449
|
||||||
2718,20,93744.7931
|
180,2718,32446
|
||||||
2718,23,25897.2899
|
181,2718,32443
|
||||||
2718,24,8314.140278
|
182,2718,32450
|
||||||
2718,28,501.5058528
|
183,2718,32447
|
||||||
2718,31,361.9578012
|
184,2718,32439
|
||||||
317589,8,361.9578012
|
185,317589,32445
|
||||||
317589,9,255111.0204
|
186,317589,56341
|
||||||
317589,10,950.9542139
|
187,317589,7
|
||||||
317589,11,361.9578012
|
188,317589,46504
|
||||||
317589,12,12136238.88
|
189,317589,32434
|
||||||
317589,13,815.5392074
|
190,317589,32441
|
||||||
317589,14,4.812205136
|
191,317589,32444
|
||||||
317589,15,12136238.88
|
192,317589,32440
|
||||||
317589,16,330.6631997
|
193,317589,32432
|
||||||
317589,17,2420351.677
|
194,317589,32451
|
||||||
317589,18,255111.0204
|
195,317589,46505
|
||||||
317589,19,41.8950274
|
196,317589,32449
|
||||||
317589,20,93744.7931
|
197,317589,32446
|
||||||
317589,21,121.8232841
|
198,317589,32442
|
||||||
317589,22,75.22587792
|
199,317589,32433
|
||||||
317589,23,25897.2899
|
200,317589,32443
|
||||||
317589,24,8314.140278
|
201,317589,32450
|
||||||
317589,25,324.0499357
|
202,317589,32435
|
||||||
317589,26,53770.08531
|
203,317589,32437
|
||||||
317589,27,251973.3182
|
204,317589,32438
|
||||||
317589,28,501.5058528
|
205,317589,32447
|
||||||
317589,29,17085.44484
|
206,317589,32436
|
||||||
317589,30,255111.0204
|
207,317589,32448
|
||||||
317589,31,361.9578012
|
208,317589,32439
|
||||||
317589,37,1155.484342
|
209,317589,8
|
||||||
317589,44,255111.0204
|
210,317589,32338
|
||||||
317589,45,255111.0204
|
211,317589,32338
|
||||||
317589,46,255111.0204
|
212,317589,32338
|
||||||
317589,47,255111.0204
|
213,317589,32338
|
||||||
317589,48,255111.0204
|
214,317589,32338
|
||||||
317589,49,255111.0204
|
215,317589,32338
|
||||||
317589,50,255111.0204
|
216,317589,32338
|
||||||
317589,51,255111.0204
|
217,317589,32338
|
||||||
317589,52,255111.0204
|
218,317589,32338
|
||||||
317589,53,255111.0204
|
219,317589,32338
|
||||||
317589,54,255111.0204
|
220,317589,32338
|
||||||
317589,55,255111.0204
|
221,317589,32338
|
||||||
317589,90,0.826657999
|
222,317589,2717
|
||||||
317589,91,0.826657999
|
223,317589,2714
|
||||||
317589,92,1.928868665
|
224,317589,2715
|
||||||
317589,93,0.826657999
|
225,317589,2716
|
||||||
317589,94,16438.82054
|
226,317589,2718
|
||||||
10,95,55482.385
|
227,10,317589
|
||||||
10,101,7178.474475
|
228,10,34573
|
||||||
10,102,314.0388569
|
229,10,34571
|
||||||
10,103,552.0321994
|
230,10,34567
|
||||||
10,104,865.399695
|
231,10,34572
|
||||||
10,105,361.9578012
|
232,10,34566
|
||||||
10,106,272.0475731
|
233,10,34569
|
||||||
10,107,41.8950274
|
234,10,34568
|
||||||
10,108,8.783241241
|
235,10,34570
|
||||||
10,109,153200.7295
|
236,10,34574
|
||||||
513740,95,55482.385
|
237,513740,317589
|
||||||
513742,95,55482.385
|
238,513742,317589
|
||||||
11,95,55482.385
|
239,11,317589
|
||||||
|
|
|
|
@ -1,216 +1,382 @@
|
||||||
产业id,制造产品id,制造量
|
,产业id,制造产品id
|
||||||
0,182,314
|
0,2714,8
|
||||||
1,152,869
|
1,2714,9
|
||||||
1,187,591
|
2,2714,10
|
||||||
2,132,559
|
3,2714,11
|
||||||
3,158,610
|
4,2714,17
|
||||||
3,141,575
|
5,2714,18
|
||||||
3,159,882
|
6,2714,19
|
||||||
4,163,604
|
7,2714,20
|
||||||
4,102,584
|
8,2714,23
|
||||||
4,150,746
|
9,2714,24
|
||||||
5,103,700
|
10,2714,28
|
||||||
5,159,113
|
11,2714,31
|
||||||
6,159,554
|
12,2714,58
|
||||||
6,143,608
|
13,2714,59
|
||||||
6,107,134
|
14,2714,61
|
||||||
7,105,665
|
15,2714,62
|
||||||
7,103,921
|
16,2714,65
|
||||||
8,143,261
|
17,2714,66
|
||||||
8,173,369
|
18,2714,70
|
||||||
9,179,848
|
19,2715,8
|
||||||
10,140,256
|
20,2715,9
|
||||||
11,107,571
|
21,2715,10
|
||||||
12,104,589
|
22,2715,11
|
||||||
12,140,127
|
23,2715,17
|
||||||
12,106,300
|
24,2715,18
|
||||||
13,198,783
|
25,2715,19
|
||||||
14,146,561
|
26,2715,20
|
||||||
15,108,306
|
27,2715,23
|
||||||
15,114,957
|
28,2715,24
|
||||||
15,141,991
|
29,2715,28
|
||||||
16,151,195
|
30,2715,31
|
||||||
16,103,833
|
31,2715,58
|
||||||
16,200,506
|
32,2715,59
|
||||||
17,158,342
|
33,2715,61
|
||||||
17,185,895
|
34,2715,62
|
||||||
17,165,781
|
35,2715,65
|
||||||
18,105,895
|
36,2715,66
|
||||||
19,196,484
|
37,2715,70
|
||||||
19,126,732
|
38,2716,8
|
||||||
20,171,510
|
39,2716,9
|
||||||
20,108,417
|
40,2716,10
|
||||||
21,143,763
|
41,2716,11
|
||||||
21,178,926
|
42,2716,17
|
||||||
22,161,596
|
43,2716,18
|
||||||
23,200,724
|
44,2716,19
|
||||||
23,155,180
|
45,2716,20
|
||||||
23,158,212
|
46,2716,23
|
||||||
24,195,324
|
47,2716,24
|
||||||
25,152,783
|
48,2716,28
|
||||||
25,189,771
|
49,2716,31
|
||||||
26,155,222
|
50,2716,58
|
||||||
26,116,866
|
51,2716,59
|
||||||
26,137,379
|
52,2716,61
|
||||||
27,110,610
|
53,2716,62
|
||||||
27,115,708
|
54,2716,65
|
||||||
28,102,759
|
55,2716,66
|
||||||
29,151,588
|
56,2716,70
|
||||||
29,132,739
|
57,2717,2
|
||||||
29,138,437
|
58,2717,8
|
||||||
30,149,250
|
59,2717,9
|
||||||
31,159,980
|
60,2717,10
|
||||||
32,108,332
|
61,2717,11
|
||||||
32,198,758
|
62,2717,17
|
||||||
32,147,307
|
63,2717,19
|
||||||
33,171,519
|
64,2717,20
|
||||||
33,137,203
|
65,2717,21
|
||||||
33,183,353
|
66,2717,23
|
||||||
34,181,805
|
67,2717,24
|
||||||
34,153,262
|
68,2717,25
|
||||||
35,113,376
|
69,2717,28
|
||||||
36,185,474
|
70,2717,31
|
||||||
36,121,849
|
71,2717,44
|
||||||
36,129,137
|
72,2717,45
|
||||||
37,197,376
|
73,2717,58
|
||||||
37,129,708
|
74,2717,59
|
||||||
37,127,978
|
75,2717,60
|
||||||
38,103,646
|
76,2717,61
|
||||||
38,163,148
|
77,2717,62
|
||||||
38,116,271
|
78,2717,65
|
||||||
39,136,379
|
79,2717,66
|
||||||
40,198,799
|
80,2717,67
|
||||||
40,196,215
|
81,2717,68
|
||||||
40,162,352
|
82,2718,8
|
||||||
41,117,892
|
83,2718,9
|
||||||
41,194,665
|
84,2718,10
|
||||||
41,157,422
|
85,2718,11
|
||||||
42,122,738
|
86,2718,17
|
||||||
42,126,589
|
87,2718,18
|
||||||
43,147,138
|
88,2718,19
|
||||||
43,192,781
|
89,2718,20
|
||||||
43,125,966
|
90,2718,23
|
||||||
44,106,924
|
91,2718,24
|
||||||
44,135,784
|
92,2718,28
|
||||||
45,175,982
|
93,2718,31
|
||||||
45,186,242
|
94,2718,58
|
||||||
46,150,764
|
95,2718,59
|
||||||
46,157,674
|
96,2718,61
|
||||||
47,151,781
|
97,2718,62
|
||||||
48,107,152
|
98,2718,65
|
||||||
49,195,983
|
99,2718,66
|
||||||
50,129,758
|
100,2718,70
|
||||||
51,154,445
|
101,32338,2
|
||||||
51,200,573
|
102,32338,15
|
||||||
52,108,740
|
103,32338,18
|
||||||
52,157,733
|
104,32338,20
|
||||||
52,100,850
|
105,32338,22
|
||||||
53,100,371
|
106,32338,23
|
||||||
54,121,960
|
107,32338,25
|
||||||
55,128,319
|
108,32338,27
|
||||||
56,161,552
|
109,32338,64
|
||||||
56,175,317
|
110,32338,67
|
||||||
57,193,456
|
111,32338,60
|
||||||
58,109,861
|
112,32338,65
|
||||||
58,118,541
|
113,32338,71
|
||||||
58,195,868
|
114,32338,2
|
||||||
59,101,596
|
115,32338,15
|
||||||
59,191,995
|
116,32338,18
|
||||||
59,131,574
|
117,32338,20
|
||||||
60,150,526
|
118,32338,22
|
||||||
61,132,267
|
119,32338,23
|
||||||
62,145,997
|
120,32338,25
|
||||||
62,134,826
|
121,32338,27
|
||||||
62,180,189
|
122,32338,64
|
||||||
63,133,214
|
123,32338,67
|
||||||
63,106,295
|
124,32338,60
|
||||||
64,135,493
|
125,32338,65
|
||||||
65,148,198
|
126,32338,71
|
||||||
65,135,195
|
127,32338,15
|
||||||
65,123,762
|
128,32338,18
|
||||||
66,112,378
|
129,32338,20
|
||||||
66,188,966
|
130,32338,22
|
||||||
66,129,372
|
131,32338,23
|
||||||
67,185,496
|
132,32338,25
|
||||||
68,175,364
|
133,32338,27
|
||||||
68,170,895
|
134,32338,32
|
||||||
68,177,834
|
135,32338,64
|
||||||
69,184,583
|
136,32338,67
|
||||||
69,152,250
|
137,32338,60
|
||||||
69,115,668
|
138,32338,65
|
||||||
70,104,262
|
139,32338,71
|
||||||
70,186,832
|
140,32338,15
|
||||||
71,106,273
|
141,32338,18
|
||||||
72,149,894
|
142,32338,20
|
||||||
73,182,747
|
143,32338,22
|
||||||
73,164,441
|
144,32338,23
|
||||||
74,103,903
|
145,32338,25
|
||||||
75,138,190
|
146,32338,27
|
||||||
75,173,957
|
147,32338,33
|
||||||
76,157,759
|
148,32338,64
|
||||||
76,191,555
|
149,32338,67
|
||||||
77,176,447
|
150,32338,60
|
||||||
77,161,604
|
151,32338,65
|
||||||
77,162,607
|
152,32338,71
|
||||||
78,137,216
|
153,32338,15
|
||||||
79,160,914
|
154,32338,18
|
||||||
80,174,863
|
155,32338,20
|
||||||
81,119,540
|
156,32338,22
|
||||||
81,117,146
|
157,32338,23
|
||||||
81,148,625
|
158,32338,25
|
||||||
82,156,111
|
159,32338,27
|
||||||
82,173,835
|
160,32338,34
|
||||||
82,115,457
|
161,32338,64
|
||||||
83,107,797
|
162,32338,67
|
||||||
83,159,277
|
163,32338,60
|
||||||
84,162,244
|
164,32338,65
|
||||||
84,172,823
|
165,32338,71
|
||||||
84,176,831
|
166,32338,15
|
||||||
85,105,693
|
167,32338,18
|
||||||
85,168,914
|
168,32338,20
|
||||||
85,124,549
|
169,32338,22
|
||||||
86,164,245
|
170,32338,23
|
||||||
87,158,894
|
171,32338,25
|
||||||
87,148,560
|
172,32338,27
|
||||||
88,100,504
|
173,32338,35
|
||||||
88,154,617
|
174,32338,64
|
||||||
88,191,808
|
175,32338,67
|
||||||
89,173,557
|
176,32338,60
|
||||||
90,176,871
|
177,32338,65
|
||||||
91,171,650
|
178,32338,71
|
||||||
91,125,349
|
179,32338,19
|
||||||
91,133,537
|
180,32338,20
|
||||||
92,153,335
|
181,32338,22
|
||||||
93,156,500
|
182,32338,23
|
||||||
93,146,306
|
183,32338,25
|
||||||
93,200,952
|
184,32338,28
|
||||||
94,163,863
|
185,32338,29
|
||||||
94,197,905
|
186,32338,27
|
||||||
95,150,546
|
187,32338,40
|
||||||
95,197,407
|
188,32338,60
|
||||||
95,137,580
|
189,32338,62
|
||||||
96,155,500
|
190,32338,63
|
||||||
96,173,884
|
191,32338,64
|
||||||
97,165,304
|
192,32338,65
|
||||||
98,122,282
|
193,32338,67
|
||||||
98,179,194
|
194,32338,68
|
||||||
98,174,473
|
195,32338,69
|
||||||
99,126,192
|
196,32338,71
|
||||||
99,131,160
|
197,32338,72
|
||||||
99,150,502
|
198,32338,19
|
||||||
100,160,633
|
199,32338,20
|
||||||
100,120,937
|
200,32338,22
|
||||||
101,145,645
|
201,32338,23
|
||||||
101,148,177
|
202,32338,25
|
||||||
102,146,220
|
203,32338,28
|
||||||
103,180,125
|
204,32338,29
|
||||||
104,151,818
|
205,32338,27
|
||||||
104,146,738
|
206,32338,38
|
||||||
104,155,825
|
207,32338,60
|
||||||
105,125,625
|
208,32338,62
|
||||||
105,158,411
|
209,32338,63
|
||||||
106,114,291
|
210,32338,64
|
||||||
106,188,730
|
211,32338,65
|
||||||
106,200,127
|
212,32338,67
|
||||||
107,189,225
|
213,32338,68
|
||||||
107,143,636
|
214,32338,69
|
||||||
|
215,32338,71
|
||||||
|
216,32338,72
|
||||||
|
217,32338,19
|
||||||
|
218,32338,20
|
||||||
|
219,32338,22
|
||||||
|
220,32338,23
|
||||||
|
221,32338,25
|
||||||
|
222,32338,28
|
||||||
|
223,32338,29
|
||||||
|
224,32338,27
|
||||||
|
225,32338,41
|
||||||
|
226,32338,60
|
||||||
|
227,32338,62
|
||||||
|
228,32338,63
|
||||||
|
229,32338,64
|
||||||
|
230,32338,65
|
||||||
|
231,32338,67
|
||||||
|
232,32338,68
|
||||||
|
233,32338,69
|
||||||
|
234,32338,71
|
||||||
|
235,32338,72
|
||||||
|
236,32338,19
|
||||||
|
237,32338,20
|
||||||
|
238,32338,22
|
||||||
|
239,32338,23
|
||||||
|
240,32338,25
|
||||||
|
241,32338,28
|
||||||
|
242,32338,29
|
||||||
|
243,32338,27
|
||||||
|
244,32338,39
|
||||||
|
245,32338,60
|
||||||
|
246,32338,62
|
||||||
|
247,32338,63
|
||||||
|
248,32338,64
|
||||||
|
249,32338,65
|
||||||
|
250,32338,67
|
||||||
|
251,32338,68
|
||||||
|
252,32338,69
|
||||||
|
253,32338,71
|
||||||
|
254,32338,72
|
||||||
|
255,32338,19
|
||||||
|
256,32338,20
|
||||||
|
257,32338,22
|
||||||
|
258,32338,23
|
||||||
|
259,32338,25
|
||||||
|
260,32338,28
|
||||||
|
261,32338,29
|
||||||
|
262,32338,27
|
||||||
|
263,32338,43
|
||||||
|
264,32338,60
|
||||||
|
265,32338,62
|
||||||
|
266,32338,63
|
||||||
|
267,32338,64
|
||||||
|
268,32338,65
|
||||||
|
269,32338,67
|
||||||
|
270,32338,68
|
||||||
|
271,32338,69
|
||||||
|
272,32338,71
|
||||||
|
273,32338,72
|
||||||
|
274,32338,19
|
||||||
|
275,32338,20
|
||||||
|
276,32338,22
|
||||||
|
277,32338,23
|
||||||
|
278,32338,25
|
||||||
|
279,32338,28
|
||||||
|
280,32338,29
|
||||||
|
281,32338,27
|
||||||
|
282,32338,42
|
||||||
|
283,32338,60
|
||||||
|
284,32338,62
|
||||||
|
285,32338,63
|
||||||
|
286,32338,64
|
||||||
|
287,32338,65
|
||||||
|
288,32338,67
|
||||||
|
289,32338,68
|
||||||
|
290,32338,69
|
||||||
|
291,32338,71
|
||||||
|
292,32338,72
|
||||||
|
293,36914,47
|
||||||
|
294,36914,49
|
||||||
|
295,36914,44
|
||||||
|
296,36914,15
|
||||||
|
297,36914,18
|
||||||
|
298,36914,20
|
||||||
|
299,36914,22
|
||||||
|
300,36914,23
|
||||||
|
301,36914,25
|
||||||
|
302,36914,31
|
||||||
|
303,36914,36
|
||||||
|
304,36914,64
|
||||||
|
305,36914,67
|
||||||
|
306,36914,60
|
||||||
|
307,36914,65
|
||||||
|
308,36914,71
|
||||||
|
309,36914,15
|
||||||
|
310,36914,18
|
||||||
|
311,36914,20
|
||||||
|
312,36914,22
|
||||||
|
313,36914,23
|
||||||
|
314,36914,25
|
||||||
|
315,36914,31
|
||||||
|
316,36914,64
|
||||||
|
317,36914,67
|
||||||
|
318,36914,60
|
||||||
|
319,36914,65
|
||||||
|
320,36914,71
|
||||||
|
321,36914,46
|
||||||
|
322,317589,8
|
||||||
|
323,317589,9
|
||||||
|
324,317589,10
|
||||||
|
325,317589,11
|
||||||
|
326,317589,12
|
||||||
|
327,317589,13
|
||||||
|
328,317589,14
|
||||||
|
329,317589,15
|
||||||
|
330,317589,16
|
||||||
|
331,317589,17
|
||||||
|
332,317589,18
|
||||||
|
333,317589,19
|
||||||
|
334,317589,20
|
||||||
|
335,317589,21
|
||||||
|
336,317589,22
|
||||||
|
337,317589,23
|
||||||
|
338,317589,24
|
||||||
|
339,317589,25
|
||||||
|
340,317589,26
|
||||||
|
341,317589,27
|
||||||
|
342,317589,28
|
||||||
|
343,317589,29
|
||||||
|
344,317589,30
|
||||||
|
345,317589,31
|
||||||
|
346,317589,37
|
||||||
|
347,317589,44
|
||||||
|
348,317589,45
|
||||||
|
349,317589,46
|
||||||
|
350,317589,47
|
||||||
|
351,317589,48
|
||||||
|
352,317589,49
|
||||||
|
353,317589,50
|
||||||
|
354,317589,51
|
||||||
|
355,317589,52
|
||||||
|
356,317589,53
|
||||||
|
357,317589,54
|
||||||
|
358,317589,55
|
||||||
|
359,317589,58
|
||||||
|
360,317589,59
|
||||||
|
361,317589,60
|
||||||
|
362,317589,61
|
||||||
|
363,317589,62
|
||||||
|
364,317589,63
|
||||||
|
365,317589,64
|
||||||
|
366,317589,65
|
||||||
|
367,317589,66
|
||||||
|
368,317589,67
|
||||||
|
369,317589,68
|
||||||
|
370,317589,69
|
||||||
|
371,317589,70
|
||||||
|
372,317589,71
|
||||||
|
373,317589,72
|
||||||
|
374,317589,73
|
||||||
|
375,317589,74
|
||||||
|
376,317589,90
|
||||||
|
377,317589,91
|
||||||
|
378,317589,92
|
||||||
|
379,317589,93
|
||||||
|
380,317589,94
|
||||||
|
|
|
|
@ -1,224 +1,418 @@
|
||||||
ID,UPID
|
ID,UPID
|
||||||
36914,32338
|
38,47
|
||||||
36914,32440
|
39,49
|
||||||
36914,46505
|
40,44
|
||||||
36914,32446
|
41,15
|
||||||
36914,32433
|
41,18
|
||||||
36914,32443
|
41,20
|
||||||
36914,32435
|
41,22
|
||||||
36914,32439
|
41,23
|
||||||
36914,56321
|
41,25
|
||||||
36914,34525
|
41,31
|
||||||
36914,34527
|
41,36
|
||||||
36914,34526
|
41,60
|
||||||
36914,34530
|
41,64
|
||||||
36914,34531
|
41,65
|
||||||
32338,32338
|
41,67
|
||||||
32338,32440
|
41,71
|
||||||
32338,46505
|
42,15
|
||||||
32338,32446
|
42,18
|
||||||
32338,32433
|
42,20
|
||||||
32338,32443
|
42,22
|
||||||
32338,32435
|
42,23
|
||||||
32338,32438
|
42,25
|
||||||
32338,34525
|
42,31
|
||||||
32338,34527
|
42,60
|
||||||
32338,34526
|
42,64
|
||||||
32338,34530
|
42,65
|
||||||
32338,34531
|
42,67
|
||||||
32338,56320
|
42,71
|
||||||
32338,56322
|
43,46
|
||||||
32338,56319
|
44,15
|
||||||
32338,56323
|
44,18
|
||||||
32338,32449
|
44,7
|
||||||
32338,32447
|
44,20
|
||||||
32338,32436
|
44,22
|
||||||
32338,36914
|
44,23
|
||||||
32338,34537
|
44,25
|
||||||
32338,34534
|
44,27
|
||||||
32338,34539
|
44,60
|
||||||
32338,34528
|
44,64
|
||||||
32338,34524
|
44,65
|
||||||
9,2515
|
44,67
|
||||||
9,2514
|
44,71
|
||||||
2717,32338
|
45,15
|
||||||
2717,32445
|
45,18
|
||||||
2717,56341
|
45,7
|
||||||
2717,7
|
45,20
|
||||||
2717,46504
|
45,22
|
||||||
2717,32451
|
45,23
|
||||||
2717,32449
|
45,25
|
||||||
2717,32446
|
45,27
|
||||||
2717,32442
|
45,60
|
||||||
2717,32443
|
45,64
|
||||||
2717,32450
|
45,65
|
||||||
2717,32435
|
45,67
|
||||||
2717,32447
|
45,71
|
||||||
2717,32439
|
46,15
|
||||||
2717,9
|
46,18
|
||||||
2717,34535
|
46,20
|
||||||
2717,34526
|
46,22
|
||||||
2717,34529
|
46,23
|
||||||
2717,34537
|
46,25
|
||||||
2717,34530
|
46,27
|
||||||
2717,34533
|
46,32
|
||||||
2717,34527
|
46,60
|
||||||
2717,34539
|
46,64
|
||||||
2714,32445
|
46,65
|
||||||
2714,56341
|
46,67
|
||||||
2714,7
|
46,71
|
||||||
2714,46504
|
47,15
|
||||||
2714,32451
|
47,18
|
||||||
2714,46505
|
47,20
|
||||||
2714,32449
|
47,22
|
||||||
2714,32446
|
47,23
|
||||||
2714,32443
|
47,25
|
||||||
2714,32450
|
47,27
|
||||||
2714,32447
|
47,33
|
||||||
2714,32439
|
47,60
|
||||||
2714,9
|
47,64
|
||||||
2714,34535
|
47,65
|
||||||
2714,34529
|
47,67
|
||||||
2714,34537
|
47,71
|
||||||
2714,34530
|
48,15
|
||||||
2714,34533
|
48,18
|
||||||
2714,34543
|
48,20
|
||||||
2715,32445
|
48,22
|
||||||
2715,56341
|
48,23
|
||||||
2715,7
|
48,25
|
||||||
2715,46504
|
48,27
|
||||||
2715,32451
|
48,34
|
||||||
2715,46505
|
48,60
|
||||||
2715,32449
|
48,64
|
||||||
2715,32446
|
48,65
|
||||||
2715,32443
|
48,67
|
||||||
2715,32450
|
48,71
|
||||||
2715,32447
|
49,15
|
||||||
2715,32439
|
49,18
|
||||||
2715,9
|
49,20
|
||||||
2715,34535
|
49,22
|
||||||
2715,34529
|
49,23
|
||||||
2715,34537
|
49,25
|
||||||
2715,34530
|
49,27
|
||||||
2715,34533
|
49,35
|
||||||
2715,34543
|
49,60
|
||||||
2716,32445
|
49,64
|
||||||
2716,56341
|
49,65
|
||||||
2716,7
|
49,67
|
||||||
2716,46504
|
49,71
|
||||||
2716,32451
|
50,19
|
||||||
2716,46505
|
50,20
|
||||||
2716,32449
|
50,22
|
||||||
2716,32446
|
50,23
|
||||||
2716,32443
|
50,25
|
||||||
2716,32450
|
50,27
|
||||||
2716,32447
|
50,28
|
||||||
2716,32439
|
50,29
|
||||||
2716,9
|
50,40
|
||||||
2716,34535
|
50,60
|
||||||
2716,34529
|
50,62
|
||||||
2716,34537
|
50,63
|
||||||
2716,34530
|
50,64
|
||||||
2716,34533
|
50,65
|
||||||
2716,34543
|
50,67
|
||||||
2718,32445
|
50,68
|
||||||
2718,56341
|
50,69
|
||||||
2718,7
|
50,71
|
||||||
2718,46504
|
50,72
|
||||||
2718,32451
|
51,19
|
||||||
2718,46505
|
51,20
|
||||||
2718,32449
|
51,22
|
||||||
2718,32446
|
51,23
|
||||||
2718,32443
|
51,25
|
||||||
2718,32450
|
51,27
|
||||||
2718,32447
|
51,28
|
||||||
2718,32439
|
51,29
|
||||||
2718,9
|
51,38
|
||||||
2718,34535
|
51,60
|
||||||
2718,34529
|
51,62
|
||||||
2718,34537
|
51,63
|
||||||
2718,34530
|
51,64
|
||||||
2718,34533
|
51,65
|
||||||
2718,34543
|
51,67
|
||||||
317589,32445
|
51,68
|
||||||
317589,56341
|
51,69
|
||||||
317589,7
|
51,71
|
||||||
317589,46504
|
51,72
|
||||||
317589,32434
|
52,19
|
||||||
317589,32441
|
52,20
|
||||||
317589,32444
|
52,22
|
||||||
317589,32440
|
52,23
|
||||||
317589,32432
|
52,25
|
||||||
317589,32451
|
52,27
|
||||||
317589,46505
|
52,28
|
||||||
317589,32449
|
52,29
|
||||||
317589,32446
|
52,41
|
||||||
317589,32442
|
52,60
|
||||||
317589,32433
|
52,62
|
||||||
317589,32443
|
52,63
|
||||||
317589,32450
|
52,64
|
||||||
317589,32435
|
52,65
|
||||||
317589,32437
|
52,67
|
||||||
317589,32438
|
52,68
|
||||||
317589,32447
|
52,69
|
||||||
317589,32436
|
52,71
|
||||||
317589,32448
|
52,72
|
||||||
317589,32439
|
53,19
|
||||||
317589,8
|
53,20
|
||||||
317589,32338
|
53,22
|
||||||
317589,9
|
53,23
|
||||||
317589,34535
|
53,25
|
||||||
317589,34526
|
53,27
|
||||||
317589,34529
|
53,28
|
||||||
317589,34537
|
53,29
|
||||||
317589,34534
|
53,39
|
||||||
317589,34525
|
53,60
|
||||||
317589,34530
|
53,62
|
||||||
317589,34533
|
53,63
|
||||||
317589,34527
|
53,64
|
||||||
317589,34539
|
53,65
|
||||||
317589,34528
|
53,67
|
||||||
317589,34543
|
53,68
|
||||||
317589,34531
|
53,69
|
||||||
317589,34524
|
53,71
|
||||||
317589,34532
|
53,72
|
||||||
317589,34538
|
54,19
|
||||||
317589,2717
|
54,20
|
||||||
317589,2714
|
54,22
|
||||||
317589,2715
|
54,23
|
||||||
317589,2716
|
54,25
|
||||||
317589,2718
|
54,27
|
||||||
317589,513738
|
54,28
|
||||||
10,34550
|
54,29
|
||||||
10,34555
|
54,43
|
||||||
10,34553
|
54,60
|
||||||
10,34545
|
54,62
|
||||||
10,34552
|
54,63
|
||||||
10,34544
|
54,64
|
||||||
10,34546
|
54,65
|
||||||
10,34549
|
54,67
|
||||||
10,34558
|
54,68
|
||||||
10,34547
|
54,69
|
||||||
10,34551
|
54,71
|
||||||
10,34548
|
54,72
|
||||||
10,317589
|
55,19
|
||||||
10,513738
|
55,20
|
||||||
10,513740
|
55,22
|
||||||
10,513742
|
55,23
|
||||||
10,11
|
55,25
|
||||||
10,34573
|
55,27
|
||||||
10,34571
|
55,28
|
||||||
10,34567
|
55,29
|
||||||
10,34572
|
55,42
|
||||||
10,34566
|
55,60
|
||||||
10,34569
|
55,62
|
||||||
10,34568
|
55,63
|
||||||
10,34570
|
55,64
|
||||||
10,34574
|
55,65
|
||||||
513738,9
|
55,67
|
||||||
513740,34556
|
55,68
|
||||||
513740,317589
|
55,69
|
||||||
513742,34557
|
55,71
|
||||||
513742,317589
|
55,72
|
||||||
11,34554
|
58,56
|
||||||
11,317589
|
58,57
|
||||||
|
90,10
|
||||||
|
90,11
|
||||||
|
90,17
|
||||||
|
90,19
|
||||||
|
90,7
|
||||||
|
90,20
|
||||||
|
90,21
|
||||||
|
90,23
|
||||||
|
90,24
|
||||||
|
90,25
|
||||||
|
90,28
|
||||||
|
90,31
|
||||||
|
90,44
|
||||||
|
90,45
|
||||||
|
90,58
|
||||||
|
90,59
|
||||||
|
90,60
|
||||||
|
90,61
|
||||||
|
90,62
|
||||||
|
90,65
|
||||||
|
90,66
|
||||||
|
90,67
|
||||||
|
90,68
|
||||||
|
90,8
|
||||||
|
90,9
|
||||||
|
91,10
|
||||||
|
91,11
|
||||||
|
91,17
|
||||||
|
91,18
|
||||||
|
91,19
|
||||||
|
91,20
|
||||||
|
91,23
|
||||||
|
91,24
|
||||||
|
91,28
|
||||||
|
91,31
|
||||||
|
91,58
|
||||||
|
91,59
|
||||||
|
91,61
|
||||||
|
91,62
|
||||||
|
91,65
|
||||||
|
91,66
|
||||||
|
91,70
|
||||||
|
91,8
|
||||||
|
91,9
|
||||||
|
92,10
|
||||||
|
92,11
|
||||||
|
92,17
|
||||||
|
92,18
|
||||||
|
92,19
|
||||||
|
92,20
|
||||||
|
92,23
|
||||||
|
92,24
|
||||||
|
92,28
|
||||||
|
92,31
|
||||||
|
92,58
|
||||||
|
92,59
|
||||||
|
92,61
|
||||||
|
92,62
|
||||||
|
92,65
|
||||||
|
92,66
|
||||||
|
92,70
|
||||||
|
92,8
|
||||||
|
92,9
|
||||||
|
93,10
|
||||||
|
93,11
|
||||||
|
93,17
|
||||||
|
93,18
|
||||||
|
93,19
|
||||||
|
93,20
|
||||||
|
93,23
|
||||||
|
93,24
|
||||||
|
93,28
|
||||||
|
93,31
|
||||||
|
93,58
|
||||||
|
93,59
|
||||||
|
93,61
|
||||||
|
93,62
|
||||||
|
93,65
|
||||||
|
93,66
|
||||||
|
93,70
|
||||||
|
93,8
|
||||||
|
93,9
|
||||||
|
94,10
|
||||||
|
94,11
|
||||||
|
94,17
|
||||||
|
94,18
|
||||||
|
94,19
|
||||||
|
94,20
|
||||||
|
94,23
|
||||||
|
94,24
|
||||||
|
94,28
|
||||||
|
94,31
|
||||||
|
94,58
|
||||||
|
94,59
|
||||||
|
94,61
|
||||||
|
94,62
|
||||||
|
94,65
|
||||||
|
94,66
|
||||||
|
94,70
|
||||||
|
94,8
|
||||||
|
94,9
|
||||||
|
95,10
|
||||||
|
95,11
|
||||||
|
95,12
|
||||||
|
95,13
|
||||||
|
95,14
|
||||||
|
95,15
|
||||||
|
95,16
|
||||||
|
95,17
|
||||||
|
95,18
|
||||||
|
95,19
|
||||||
|
95,20
|
||||||
|
95,21
|
||||||
|
95,22
|
||||||
|
95,23
|
||||||
|
95,24
|
||||||
|
95,25
|
||||||
|
95,26
|
||||||
|
95,27
|
||||||
|
95,28
|
||||||
|
95,29
|
||||||
|
95,30
|
||||||
|
95,31
|
||||||
|
95,37
|
||||||
|
95,44
|
||||||
|
95,45
|
||||||
|
95,46
|
||||||
|
95,47
|
||||||
|
95,48
|
||||||
|
95,49
|
||||||
|
95,50
|
||||||
|
95,51
|
||||||
|
95,52
|
||||||
|
95,53
|
||||||
|
95,54
|
||||||
|
95,55
|
||||||
|
95,58
|
||||||
|
95,59
|
||||||
|
95,60
|
||||||
|
95,61
|
||||||
|
95,62
|
||||||
|
95,63
|
||||||
|
95,64
|
||||||
|
95,65
|
||||||
|
95,66
|
||||||
|
95,67
|
||||||
|
95,68
|
||||||
|
95,69
|
||||||
|
95,70
|
||||||
|
95,71
|
||||||
|
95,72
|
||||||
|
95,73
|
||||||
|
95,74
|
||||||
|
95,8
|
||||||
|
95,9
|
||||||
|
95,90
|
||||||
|
95,91
|
||||||
|
95,92
|
||||||
|
95,93
|
||||||
|
95,94
|
||||||
|
95,97
|
||||||
|
96,100
|
||||||
|
96,101
|
||||||
|
96,102
|
||||||
|
96,103
|
||||||
|
96,104
|
||||||
|
96,105
|
||||||
|
96,106
|
||||||
|
96,107
|
||||||
|
96,108
|
||||||
|
96,109
|
||||||
|
96,75
|
||||||
|
96,76
|
||||||
|
96,80
|
||||||
|
96,81
|
||||||
|
96,82
|
||||||
|
96,83
|
||||||
|
96,84
|
||||||
|
96,85
|
||||||
|
96,86
|
||||||
|
96,87
|
||||||
|
96,88
|
||||||
|
96,89
|
||||||
|
96,95
|
||||||
|
96,97
|
||||||
|
96,98
|
||||||
|
96,99
|
||||||
|
97,58
|
||||||
|
98,78
|
||||||
|
98,95
|
||||||
|
99,79
|
||||||
|
99,95
|
||||||
|
100,77
|
||||||
|
100,95
|
||||||
|
|
|
150
my_model.py
150
my_model.py
|
@ -9,10 +9,14 @@ from mesa.space import MultiGrid, NetworkGrid
|
||||||
from mesa.datacollection import DataCollector
|
from mesa.datacollection import DataCollector
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from mesa_viz_tornado.modules import NetworkModule
|
||||||
|
|
||||||
from firm import FirmAgent
|
from firm import FirmAgent
|
||||||
from orm import db_session, Result
|
from orm import db_session, Result
|
||||||
from product import ProductAgent
|
from product import ProductAgent
|
||||||
|
|
||||||
|
from mesa.visualization import ModularServer
|
||||||
|
|
||||||
|
|
||||||
class MyModel(Model):
|
class MyModel(Model):
|
||||||
def __init__(self, params):
|
def __init__(self, params):
|
||||||
|
@ -83,6 +87,7 @@ class MyModel(Model):
|
||||||
data = pd.read_csv('input_data/input_product_data/BomNodes.csv')
|
data = pd.read_csv('input_data/input_product_data/BomNodes.csv')
|
||||||
data['Code'] = data['Code'].astype('string')
|
data['Code'] = data['Code'].astype('string')
|
||||||
self.type2 = data
|
self.type2 = data
|
||||||
|
self.id_code = data.groupby('Code')['Index'].apply(list)
|
||||||
# 设备c折旧比值
|
# 设备c折旧比值
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -95,7 +100,7 @@ class MyModel(Model):
|
||||||
|
|
||||||
firm.fillna(0, inplace=True)
|
firm.fillna(0, inplace=True)
|
||||||
|
|
||||||
firm_attr = firm.loc[:, ["Code", "Type_Region", "Revenue_Log", "原材料", "设备数量", "库存商品"]]
|
firm_attr = firm.loc[:, ["Code", "Type_Region", "Revenue_Log"]]
|
||||||
|
|
||||||
firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
|
firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
|
||||||
firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
|
firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
|
||||||
|
@ -108,8 +113,20 @@ class MyModel(Model):
|
||||||
firm_attr['Product_Code'] = firm_attr['Code'].map(grouped)
|
firm_attr['Product_Code'] = firm_attr['Code'].map(grouped)
|
||||||
firm_attr.set_index('Code', inplace=True)
|
firm_attr.set_index('Code', inplace=True)
|
||||||
|
|
||||||
self.G_Firm.add_nodes_from(firm["Code"])
|
grouped = firm_industry_relation.groupby('Firm_Code')
|
||||||
|
self.firm_prod_labels_dict = {code: group['Product_Code'].tolist() for code, group in grouped}
|
||||||
|
|
||||||
|
# 遍历'Product_Code' 与 index 交换
|
||||||
|
for index, row in firm_attr.iterrows():
|
||||||
|
id_index_list = []
|
||||||
|
for i in row['Product_Code']:
|
||||||
|
for key_values in self.id_code.items():
|
||||||
|
if int(key_values[0]) == i:
|
||||||
|
for id in key_values[1]:
|
||||||
|
id_index_list.append(id)
|
||||||
|
firm_attr.at[index, 'Product_Code'] = id_index_list
|
||||||
|
|
||||||
|
self.G_Firm.add_nodes_from(firm["Code"])
|
||||||
# Assign attributes to the firm nodes
|
# Assign attributes to the firm nodes
|
||||||
firm_labels_dict = {code: firm_attr.loc[code].to_dict() for code in self.G_Firm.nodes}
|
firm_labels_dict = {code: firm_attr.loc[code].to_dict() for code in self.G_Firm.nodes}
|
||||||
nx.set_node_attributes(self.G_Firm, firm_labels_dict)
|
nx.set_node_attributes(self.G_Firm, firm_labels_dict)
|
||||||
|
@ -120,13 +137,20 @@ class MyModel(Model):
|
||||||
|
|
||||||
firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
|
firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
|
||||||
firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
|
firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
|
||||||
|
firm_industry_relation['Product_Code'] = firm_industry_relation['Product_Code'].apply(lambda x: [x])
|
||||||
# 将 'firm_prod' 表中的每一行作为图中的节点
|
# 将 'firm_prod' 表中的每一行作为图中的节点
|
||||||
self.G_FirmProd.add_nodes_from(firm_industry_relation.index)
|
self.G_FirmProd.add_nodes_from(firm_industry_relation.index)
|
||||||
|
|
||||||
# 为每个节点分配属性
|
# 为每个节点分配属性
|
||||||
grouped = firm_industry_relation.groupby('Firm_Code')
|
|
||||||
|
|
||||||
self.firm_prod_labels_dict = {code: group['Product_Code'].tolist() for code, group in grouped}
|
# 遍历'Product_Code' 与 index 交换
|
||||||
|
for index, row in firm_industry_relation.iterrows():
|
||||||
|
id_index_list = []
|
||||||
|
for i in row['Product_Code']:
|
||||||
|
for key_values in self.id_code.items():
|
||||||
|
if int(key_values[0]) == i:
|
||||||
|
for id in key_values[1]:
|
||||||
|
id_index_list.append(id)
|
||||||
|
firm_industry_relation.at[index, 'Product_Code'] = id_index_list
|
||||||
|
|
||||||
firm_prod_labels_dict = {code: firm_industry_relation.loc[code].to_dict() for code in
|
firm_prod_labels_dict = {code: firm_industry_relation.loc[code].to_dict() for code in
|
||||||
firm_industry_relation.index}
|
firm_industry_relation.index}
|
||||||
|
@ -137,15 +161,6 @@ class MyModel(Model):
|
||||||
# Add edges to G_Firm according to G_bom
|
# Add edges to G_Firm according to G_bom
|
||||||
for node in nx.nodes(self.G_Firm):
|
for node in nx.nodes(self.G_Firm):
|
||||||
lst_pred_product_code = []
|
lst_pred_product_code = []
|
||||||
product_code = self.G_Firm.nodes[node].get('Product_Code')
|
|
||||||
# 打印值和类型
|
|
||||||
#print(f"节点 {node} 的 'Product_Code': {product_code}, 类型: {type(product_code)}")
|
|
||||||
|
|
||||||
# 如果 'Product_Code' 是 float 类型或单个值,将其转换为列表
|
|
||||||
if isinstance(product_code, float):
|
|
||||||
#print(f"警告: 节点 {node} 的 'Product_Code' 为浮点数,已转换为列表")
|
|
||||||
product_code = [product_code] # 将浮点数包装为列表
|
|
||||||
|
|
||||||
for product_code in self.G_Firm.nodes[node]['Product_Code']:
|
for product_code in self.G_Firm.nodes[node]['Product_Code']:
|
||||||
lst_pred_product_code += list(self.G_bom.predecessors(product_code))
|
lst_pred_product_code += list(self.G_bom.predecessors(product_code))
|
||||||
lst_pred_product_code = list(set(lst_pred_product_code))
|
lst_pred_product_code = list(set(lst_pred_product_code))
|
||||||
|
@ -166,7 +181,7 @@ class MyModel(Model):
|
||||||
lst_pred_firm_size = [self.G_Firm.nodes[pred_firm]['Revenue_Log'] for pred_firm in lst_pred_firm]
|
lst_pred_firm_size = [self.G_Firm.nodes[pred_firm]['Revenue_Log'] for pred_firm in lst_pred_firm]
|
||||||
# 检查 lst_pred_firm_size 是否为空或总和为 0
|
# 检查 lst_pred_firm_size 是否为空或总和为 0
|
||||||
if len(lst_pred_firm_size) == 0 or sum(lst_pred_firm_size) == 0:
|
if len(lst_pred_firm_size) == 0 or sum(lst_pred_firm_size) == 0:
|
||||||
#print("警告: lst_pred_firm_size 为空或总和为 0,无法生成概率分布")
|
# print("警告: lst_pred_firm_size 为空或总和为 0,无法生成概率分布")
|
||||||
lst_choose_firm = [] # 返回空结果,或根据需要处理
|
lst_choose_firm = [] # 返回空结果,或根据需要处理
|
||||||
else:
|
else:
|
||||||
# 计算总和
|
# 计算总和
|
||||||
|
@ -175,7 +190,7 @@ class MyModel(Model):
|
||||||
lst_prob = [size / sum_pred_firm_size for size in lst_pred_firm_size]
|
lst_prob = [size / sum_pred_firm_size for size in lst_pred_firm_size]
|
||||||
# 使用 np.isclose() 确保概率总和接近 1
|
# 使用 np.isclose() 确保概率总和接近 1
|
||||||
if not np.isclose(sum(lst_prob), 1.0):
|
if not np.isclose(sum(lst_prob), 1.0):
|
||||||
#print(f"警告: 概率总和为 {sum(lst_prob)},现在进行修正")
|
# print(f"警告: 概率总和为 {sum(lst_prob)},现在进行修正")
|
||||||
lst_prob = [prob / sum(lst_prob) for prob in lst_prob]
|
lst_prob = [prob / sum(lst_prob) for prob in lst_prob]
|
||||||
# 确保没有负值或 0
|
# 确保没有负值或 0
|
||||||
lst_prob = [max(0, prob) for prob in lst_prob]
|
lst_prob = [max(0, prob) for prob in lst_prob]
|
||||||
|
@ -185,7 +200,6 @@ class MyModel(Model):
|
||||||
# 直接进行随机选择
|
# 直接进行随机选择
|
||||||
lst_choose_firm = self.nprandom.choice(lst_pred_firm, n_pred_firm, replace=False)
|
lst_choose_firm = self.nprandom.choice(lst_pred_firm, n_pred_firm, replace=False)
|
||||||
|
|
||||||
|
|
||||||
# Add edges from predecessor firms to current node (firm)
|
# Add edges from predecessor firms to current node (firm)
|
||||||
lst_add_edge = [(pred_firm, node, {'Product': pred_product_code}) for pred_firm in lst_choose_firm]
|
lst_add_edge = [(pred_firm, node, {'Product': pred_product_code}) for pred_firm in lst_choose_firm]
|
||||||
self.G_Firm.add_edges_from(lst_add_edge)
|
self.G_Firm.add_edges_from(lst_add_edge)
|
||||||
|
@ -199,21 +213,46 @@ class MyModel(Model):
|
||||||
set_pred_succ_code = set(self.G_bom.successors(pred_product_code))
|
set_pred_succ_code = set(self.G_bom.successors(pred_product_code))
|
||||||
lst_use_pred_prod_code = list(set_node_prod_code & set_pred_succ_code)
|
lst_use_pred_prod_code = list(set_node_prod_code & set_pred_succ_code)
|
||||||
|
|
||||||
|
if len(lst_use_pred_prod_code) == 0:
|
||||||
|
print("错误")
|
||||||
|
|
||||||
|
pred_node_list = []
|
||||||
for pred_firm in lst_choose_firm:
|
for pred_firm in lst_choose_firm:
|
||||||
pred_node = [n for n, v in self.G_FirmProd.nodes(data=True) if
|
for n, v in self.G_FirmProd.nodes(data=True):
|
||||||
v['Firm_Code'] == pred_firm and v['Product_Code'] == pred_product_code][0]
|
for v1 in v['Product_Code']:
|
||||||
|
if v1 == pred_product_code and v['Firm_Code'] == pred_firm:
|
||||||
|
pred_node_list.append(n)
|
||||||
|
if len(pred_node_list) != 0:
|
||||||
|
pred_node = pred_node_list[0]
|
||||||
|
else:
|
||||||
|
pred_node = -1
|
||||||
|
current_node_list = []
|
||||||
for use_pred_prod_code in lst_use_pred_prod_code:
|
for use_pred_prod_code in lst_use_pred_prod_code:
|
||||||
current_node = [n for n, v in self.G_FirmProd.nodes(data=True) if
|
for n, v in self.G_FirmProd.nodes(data=True):
|
||||||
v['Firm_Code'] == node and v['Product_Code'] == use_pred_prod_code][0]
|
for v1 in v['Product_Code']:
|
||||||
|
if v1 == use_pred_prod_code and v['Firm_Code'] == node:
|
||||||
|
current_node_list.append(n)
|
||||||
|
if len(current_node_list) != 0:
|
||||||
|
current_node = current_node_list[0]
|
||||||
|
else:
|
||||||
|
current_node = -1
|
||||||
|
if current_node !=-1 and pred_node !=-1:
|
||||||
self.G_FirmProd.add_edge(pred_node, current_node)
|
self.G_FirmProd.add_edge(pred_node, current_node)
|
||||||
|
|
||||||
def connect_unconnected_nodes(self):
|
def connect_unconnected_nodes(self):
|
||||||
""" Connect unconnected nodes in the firm network """
|
""" Connect unconnected nodes in the firm network """
|
||||||
for node in nx.nodes(self.G_Firm):
|
for node in nx.nodes(self.G_Firm):
|
||||||
if self.G_Firm.degree(node) == 0:
|
if self.G_Firm.degree(node) == 0:
|
||||||
|
current_node_list = []
|
||||||
for product_code in self.G_Firm.nodes[node]['Product_Code']:
|
for product_code in self.G_Firm.nodes[node]['Product_Code']:
|
||||||
current_node = [n for n, v in self.G_FirmProd.nodes(data=True) if
|
for n, v in self.G_FirmProd.nodes(data=True):
|
||||||
v['Firm_Code'] == node and v['Product_Code'] == product_code][0]
|
for v1 in v['Product_Code']:
|
||||||
|
if v['Firm_Code'] == node and v1 == product_code:
|
||||||
|
current_node_list.append(n)
|
||||||
|
if len(current_node_list) != 0:
|
||||||
|
current_node = current_node_list[0]
|
||||||
|
else:
|
||||||
|
current_node = -1
|
||||||
lst_succ_product_code = list(self.G_bom.successors(product_code))
|
lst_succ_product_code = list(self.G_bom.successors(product_code))
|
||||||
|
|
||||||
for succ_product_code in lst_succ_product_code:
|
for succ_product_code in lst_succ_product_code:
|
||||||
|
@ -227,7 +266,22 @@ class MyModel(Model):
|
||||||
if self.is_prf_size:
|
if self.is_prf_size:
|
||||||
lst_succ_firm_size = [self.G_Firm.nodes[succ_firm]['Revenue_Log'] for succ_firm in
|
lst_succ_firm_size = [self.G_Firm.nodes[succ_firm]['Revenue_Log'] for succ_firm in
|
||||||
lst_succ_firm]
|
lst_succ_firm]
|
||||||
lst_prob = [size / sum(lst_succ_firm_size) for size in lst_succ_firm_size]
|
if len(lst_succ_firm_size) == 0 or sum(lst_succ_firm_size) == 0:
|
||||||
|
# print("警告: lst_pred_firm_size 为空或总和为 0,无法生成概率分布")
|
||||||
|
lst_choose_firm = [] # 返回空结果,或根据需要处理
|
||||||
|
else:
|
||||||
|
# 计算总和
|
||||||
|
sum_pred_firm_size = sum(lst_succ_firm_size)
|
||||||
|
# 归一化生成 lst_prob
|
||||||
|
lst_prob = [size / sum_pred_firm_size for size in lst_succ_firm_size]
|
||||||
|
# 使用 np.isclose() 确保概率总和接近 1
|
||||||
|
if not np.isclose(sum(lst_prob), 1.0):
|
||||||
|
# print(f"警告: 概率总和为 {sum(lst_prob)},现在进行修正")
|
||||||
|
lst_prob = [prob / sum(lst_prob) for prob in lst_prob]
|
||||||
|
|
||||||
|
# 确保没有负值或 0
|
||||||
|
lst_prob = [max(0, prob) for prob in lst_prob]
|
||||||
|
|
||||||
lst_choose_firm = self.nprandom.choice(lst_succ_firm, n_succ_firm, replace=False,
|
lst_choose_firm = self.nprandom.choice(lst_succ_firm, n_succ_firm, replace=False,
|
||||||
p=lst_prob)
|
p=lst_prob)
|
||||||
else:
|
else:
|
||||||
|
@ -238,9 +292,18 @@ class MyModel(Model):
|
||||||
self.G_Firm.add_edges_from(lst_add_edge)
|
self.G_Firm.add_edges_from(lst_add_edge)
|
||||||
|
|
||||||
# Add edges to firm-product network
|
# Add edges to firm-product network
|
||||||
|
succ_node_list = []
|
||||||
for succ_firm in lst_choose_firm:
|
for succ_firm in lst_choose_firm:
|
||||||
succ_node = [n for n, v in self.G_FirmProd.nodes(data=True) if
|
for n, v in self.G_FirmProd.nodes(data=True):
|
||||||
v['Firm_Code'] == succ_firm and v['Product_Code'] == succ_product_code][0]
|
for v1 in v['Product_Code']:
|
||||||
|
if v1 == succ_product_code and v['Firm_Code'] == succ_firm:
|
||||||
|
succ_node_list.append(n)
|
||||||
|
if len(succ_node_list)!=0:
|
||||||
|
succ_node = succ_node_list[0]
|
||||||
|
else:
|
||||||
|
succ_node=-1
|
||||||
|
|
||||||
|
if current_node != -1 and succ_node != -1:
|
||||||
self.G_FirmProd.add_edge(current_node, succ_node)
|
self.G_FirmProd.add_edge(current_node, succ_node)
|
||||||
|
|
||||||
self.sample.g_firm = json.dumps(nx.adjacency_data(self.G_Firm))
|
self.sample.g_firm = json.dumps(nx.adjacency_data(self.G_Firm))
|
||||||
|
@ -253,16 +316,19 @@ class MyModel(Model):
|
||||||
for ag_node, attr in self.product_network.nodes(data=True):
|
for ag_node, attr in self.product_network.nodes(data=True):
|
||||||
# 产业种类
|
# 产业种类
|
||||||
# 利用 BomNodes.csv 转换产业 和 id 前提是 一个产业一个产品id 且一一对应
|
# 利用 BomNodes.csv 转换产业 和 id 前提是 一个产业一个产品id 且一一对应
|
||||||
product_id = self.type2.loc[self.type2['Code'] == ag_node, 'Index']
|
# product_id = self.type2.loc[self.type2['Code'] == ag_node, 'Code']
|
||||||
|
# if not product_id.empty:
|
||||||
type2 = self.type2.loc[product_id, '产业种类'].values[0]
|
# type2 = self.type2.loc[product_id.values[0], '产业种类']
|
||||||
|
# else:
|
||||||
|
# # 处理 product_id 为空的情况,例如设置为默认值或跳过
|
||||||
|
# type2 = -1 # 或其他合适的默认值
|
||||||
|
type2 = 0
|
||||||
# depreciation ratio 折旧比值
|
# depreciation ratio 折旧比值
|
||||||
product_id = product_id.iloc[0]
|
# product_id = product_id.iloc[0]
|
||||||
|
|
||||||
j_comp_data_consumed = self.data_consumed[product_id]
|
j_comp_data_consumed = self.data_consumed[ag_node]
|
||||||
|
|
||||||
j_comp_data_produced = self.data_produced[product_id]
|
j_comp_data_produced = self.data_produced[ag_node]
|
||||||
|
|
||||||
product = ProductAgent(ag_node, self, name=attr['Name'], type2=type2,
|
product = ProductAgent(ag_node, self, name=attr['Name'], type2=type2,
|
||||||
j_comp_data_consumed=j_comp_data_consumed,
|
j_comp_data_consumed=j_comp_data_consumed,
|
||||||
|
@ -369,9 +435,9 @@ class MyModel(Model):
|
||||||
data_consumed = pd.read_csv('input_data/input_product_data/products_consumed_materials.csv')
|
data_consumed = pd.read_csv('input_data/input_product_data/products_consumed_materials.csv')
|
||||||
data_produced = pd.read_csv('input_data/input_product_data/products_produced_products.csv')
|
data_produced = pd.read_csv('input_data/input_product_data/products_produced_products.csv')
|
||||||
|
|
||||||
data_consumed = (data_consumed.groupby('产业id')[['消耗材料id', '消耗量']]
|
data_consumed = (data_consumed.groupby('产业id')['消耗材料id']
|
||||||
.apply(lambda x: x.values.tolist()))
|
.apply(lambda x: x.values.tolist()))
|
||||||
data_produced = (data_produced.groupby('产业id')[['制造产品id', '制造量']]
|
data_produced = (data_produced.groupby('产业id')['制造产品id']
|
||||||
.apply(lambda x: x.values.tolist()))
|
.apply(lambda x: x.values.tolist()))
|
||||||
|
|
||||||
self.data_consumed = data_consumed
|
self.data_consumed = data_consumed
|
||||||
|
@ -480,10 +546,11 @@ class MyModel(Model):
|
||||||
# 消耗资源过程
|
# 消耗资源过程
|
||||||
consumed_material = []
|
consumed_material = []
|
||||||
for product in firm.indus_i:
|
for product in firm.indus_i:
|
||||||
for sub_list_data_consumed in product.j_comp_data_consumed:
|
for consumed_material_id in product.j_comp_data_consumed:
|
||||||
consumed_material_id = sub_list_data_consumed[0]
|
consumed_material_num = 0.1
|
||||||
consumed_material_num = sub_list_data_consumed[1]
|
|
||||||
consumed_material.append([consumed_material_id, consumed_material_num])
|
consumed_material.append([consumed_material_id, consumed_material_num])
|
||||||
|
|
||||||
for sub_list_consumed_material in consumed_material:
|
for sub_list_consumed_material in consumed_material:
|
||||||
for sub_list_material in firm.R:
|
for sub_list_material in firm.R:
|
||||||
if sub_list_material[0] == sub_list_consumed_material[0]:
|
if sub_list_material[0] == sub_list_consumed_material[0]:
|
||||||
|
@ -491,10 +558,11 @@ class MyModel(Model):
|
||||||
# 生产产品过程
|
# 生产产品过程
|
||||||
produced_products = []
|
produced_products = []
|
||||||
for product in firm.indus_i:
|
for product in firm.indus_i:
|
||||||
for sub_list_produced_products in product.j_comp_data_consumed:
|
for produced_products_id in product.j_comp_data_consumed:
|
||||||
produced_products_id = sub_list_produced_products[0]
|
produced_products_num = 0.1
|
||||||
produced_products_num = sub_list_produced_products[1]
|
|
||||||
produced_products.append([produced_products_id, produced_products_num])
|
produced_products.append([produced_products_id, produced_products_num])
|
||||||
|
|
||||||
for sub_list_data_produced_products in produced_products:
|
for sub_list_data_produced_products in produced_products:
|
||||||
for sub_list_products in firm.P:
|
for sub_list_products in firm.P:
|
||||||
if sub_list_products[0] == sub_list_data_produced_products[0]:
|
if sub_list_products[0] == sub_list_data_produced_products[0]:
|
||||||
|
|
60
可视化测试.py
60
可视化测试.py
|
@ -1,60 +0,0 @@
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
from mpl_toolkits.mplot3d import Axes3D
|
|
||||||
import numpy as np
|
|
||||||
from matplotlib import rcParams
|
|
||||||
|
|
||||||
# 设置中文字体和符号显示
|
|
||||||
rcParams['font.sans-serif'] = ['SimHei'] # 或者使用 ['Microsoft YaHei']
|
|
||||||
rcParams['axes.unicode_minus'] = False # 用来正常显示负号
|
|
||||||
# 定义节点和边
|
|
||||||
nodes = {
|
|
||||||
0: '原材料供应商',
|
|
||||||
1: '零部件制造商',
|
|
||||||
2: '产品制造商',
|
|
||||||
3: '分销商',
|
|
||||||
4: '零售商'
|
|
||||||
}
|
|
||||||
|
|
||||||
edges = [
|
|
||||||
(0, 1), # 原材料供应商 -> 零部件制造商
|
|
||||||
(1, 2), # 零部件制造商 -> 产品制造商
|
|
||||||
(2, 3), # 产品制造商 -> 分销商
|
|
||||||
(3, 4) # 分销商 -> 零售商
|
|
||||||
]
|
|
||||||
|
|
||||||
# 定义节点的三维坐标 (x, y, z)
|
|
||||||
positions = {
|
|
||||||
0: (0, 0, 0), # 原材料供应商
|
|
||||||
1: (1, 0, 1), # 零部件制造商
|
|
||||||
2: (2, 0, 2), # 产品制造商
|
|
||||||
3: (3, 0, 3), # 分销商
|
|
||||||
4: (4, 0, 4) # 零售商
|
|
||||||
}
|
|
||||||
|
|
||||||
# 创建3D图形
|
|
||||||
fig = plt.figure()
|
|
||||||
ax = fig.add_subplot(111, projection='3d')
|
|
||||||
|
|
||||||
# 绘制节点
|
|
||||||
for node, (x, y, z) in positions.items():
|
|
||||||
ax.scatter(x, y, z, color='b', s=100) # 绘制每个节点
|
|
||||||
ax.text(x, y, z, nodes[node], size=12, zorder=1, color='k') # 添加节点标签
|
|
||||||
|
|
||||||
# 绘制边(箭头)
|
|
||||||
for start, end in edges:
|
|
||||||
start_pos = positions[start]
|
|
||||||
end_pos = positions[end]
|
|
||||||
ax.plot([start_pos[0], end_pos[0]],
|
|
||||||
[start_pos[1], end_pos[1]],
|
|
||||||
[start_pos[2], end_pos[2]], color='r') # 连接每对节点
|
|
||||||
|
|
||||||
# 设置坐标轴标签
|
|
||||||
ax.set_xlabel('X轴')
|
|
||||||
ax.set_ylabel('Y轴')
|
|
||||||
ax.set_zlabel('Z轴')
|
|
||||||
|
|
||||||
# 设置视角以便更好地观察3D图形
|
|
||||||
ax.view_init(elev=20., azim=-35) # 角度可根据需要调整
|
|
||||||
|
|
||||||
# 显示3D图形
|
|
||||||
plt.show()
|
|
Loading…
Reference in New Issue