no message
This commit is contained in:
parent
fe5ea1a284
commit
e8ca4d0107
|
@ -73,6 +73,41 @@
|
||||||
</Attribute>
|
</Attribute>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count_dcp.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count_dcp_prod.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count_firm.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count_firm_prod.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="\output_result\risk\count_prod.csv">
|
||||||
|
<value>
|
||||||
|
<Attribute>
|
||||||
|
<option name="separator" value="," />
|
||||||
|
</Attribute>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="\测试数据 companies_devices.csv">
|
<entry key="\测试数据 companies_devices.csv">
|
||||||
<value>
|
<value>
|
||||||
<Attribute>
|
<Attribute>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -44,7 +44,7 @@ class ControllerDB:
|
||||||
self.fill_sample_table()
|
self.fill_sample_table()
|
||||||
|
|
||||||
def fill_experiment_table(self):
|
def fill_experiment_table(self):
|
||||||
firm = pd.read_csv("input_data/Firm_amended.csv")
|
firm = pd.read_csv("input_data/input_firm_data/Firm_amended.csv")
|
||||||
firm['Code'] = firm['Code'].astype('string')
|
firm['Code'] = firm['Code'].astype('string')
|
||||||
firm.fillna(0, inplace=True)
|
firm.fillna(0, inplace=True)
|
||||||
|
|
||||||
|
@ -74,10 +74,10 @@ class ControllerDB:
|
||||||
|
|
||||||
# fill g_bom
|
# fill g_bom
|
||||||
# 结点属性值 相当于 图上点的 原始 产品名称
|
# 结点属性值 相当于 图上点的 原始 产品名称
|
||||||
bom_nodes = pd.read_csv('input_data/BomNodes.csv', index_col=0)
|
bom_nodes = pd.read_csv('input_data/input_product_data/BomNodes.csv', index_col=0)
|
||||||
bom_nodes.set_index('Code', inplace=True)
|
bom_nodes.set_index('Code', inplace=True)
|
||||||
|
|
||||||
bom_cate_net = pd.read_csv('input_data/BomCateNet.csv', index_col=0)
|
bom_cate_net = pd.read_csv('input_data/input_product_data/BomCateNet.csv', index_col=0)
|
||||||
bom_cate_net.fillna(0, inplace=True)
|
bom_cate_net.fillna(0, inplace=True)
|
||||||
# 创建 可以多边的有向图 同时 转置操作 使得 上游指向下游结点 也就是 1.1.1 - 1.1 类似这种
|
# 创建 可以多边的有向图 同时 转置操作 使得 上游指向下游结点 也就是 1.1.1 - 1.1 类似这种
|
||||||
g_bom = nx.from_pandas_adjacency(bom_cate_net.T,
|
g_bom = nx.from_pandas_adjacency(bom_cate_net.T,
|
||||||
|
|
|
@ -1,108 +0,0 @@
|
||||||
Index,Code,Level,Name
|
|
||||||
0,1,0,工业互联网
|
|
||||||
1,1.1,1,工业自动化硬件
|
|
||||||
2,1.1.1,2,工业计算芯片
|
|
||||||
3,1.1.2,2,工业控制器
|
|
||||||
4,1.1.3,2,工业服务器
|
|
||||||
5,1.2,1,工业互联网网络
|
|
||||||
6,1.2.1,2,网络互联服务
|
|
||||||
7,1.2.2,2,标识解析服务
|
|
||||||
8,1.2.3,2,数据互通服务
|
|
||||||
9,1.3,1,工业软件
|
|
||||||
10,1.3.1,2,设计研发软件
|
|
||||||
11,1.3.1.1,3,计算机辅助设计CAD
|
|
||||||
12,1.3.1.2,3,计算机辅助工程CAE
|
|
||||||
13,1.3.1.3,3,计算机辅助制造CAM
|
|
||||||
14,1.3.1.4,3,计算机辅助工艺过程设计CAPP
|
|
||||||
15,1.3.1.5,3,产品数据管理PDM
|
|
||||||
16,1.3.1.6,3,产品生命周期管理PLM
|
|
||||||
17,1.3.1.7,3,电子设计自动化EDA
|
|
||||||
18,1.3.2,2,采购供应软件
|
|
||||||
19,1.3.2.1,3,供应链管理SCM
|
|
||||||
20,1.3.3,2,生产制造软件
|
|
||||||
21,1.3.3.1,3,制造执行系统MES
|
|
||||||
22,1.3.3.2,3,分布式控制系统DCS
|
|
||||||
23,1.3.3.3,3,数据采集与监视控制系统SCADA
|
|
||||||
24,1.3.3.4,3,可编程逻揖控制系统PLC
|
|
||||||
25,1.3.3.5,3,企业资产管理系统EAM
|
|
||||||
26,1.3.3.6,3,运维保障系统MRO
|
|
||||||
27,1.3.3.7,3,故障预测与健康管理PHM
|
|
||||||
28,1.3.4,2,企业运营管理软件
|
|
||||||
29,1.3.4.1,3,企业资源计划ERP
|
|
||||||
30,1.3.4.2,3,客户关系管理CRM
|
|
||||||
31,1.3.4.3,3,人力资源管理HRM
|
|
||||||
32,1.3.5,2,仓储物流软件
|
|
||||||
33,1.3.5.1,3,仓储物流管理WMS
|
|
||||||
34,1.4,1,工业互联网安全管理
|
|
||||||
35,1.4.1,2,设备安全
|
|
||||||
36,1.4.1.1,3,工业防火墙
|
|
||||||
37,1.4.1.2,3,下一代防火墙
|
|
||||||
38,1.4.1.3,3,防毒墙
|
|
||||||
39,1.4.1.4,3,入侵检测系统
|
|
||||||
40,1.4.1.5,3,统一威胁管理系统
|
|
||||||
41,1.4.2,2,控制安全
|
|
||||||
42,1.4.2.1,3,工控安全监测与审计
|
|
||||||
43,1.4.2.2,3,工控主机卫士
|
|
||||||
44,1.4.2.3,3,工控漏洞扫描
|
|
||||||
45,1.4.2.4,3,安全隔离与信息交换系统
|
|
||||||
46,1.4.2.5,3,安全日志与审计
|
|
||||||
47,1.4.2.6,3,隐私计算
|
|
||||||
48,1.4.2.7,3,工控原生安全
|
|
||||||
49,1.4.3,2,网络安全
|
|
||||||
50,1.4.3.1,3,网络漏洞扫描和补丁管理
|
|
||||||
51,1.4.3.2,3,流量检测
|
|
||||||
52,1.4.3.3,3,APT检测
|
|
||||||
53,1.4.3.4,3,攻击溯源
|
|
||||||
54,1.4.3.5,3,负载均衡
|
|
||||||
55,1.4.3.6,3,沙箱类设备
|
|
||||||
56,1.4.4,2,平台安全
|
|
||||||
57,1.4.4.1,3,身份鉴别与访问控制
|
|
||||||
58,1.4.4.2,3,密钥管理
|
|
||||||
59,1.4.4.3,3,接入认证
|
|
||||||
60,1.4.4.4,3,工业应用行为监控
|
|
||||||
61,1.4.4.5,3,安全态势感知
|
|
||||||
62,1.4.5,2,数据安全
|
|
||||||
63,1.4.5.1,3,恶意代码检测系统
|
|
||||||
64,1.4.5.2,3,数据防泄漏系统
|
|
||||||
65,1.4.5.3,3,数据审计系统
|
|
||||||
66,1.4.5.4,3,数据脱敏
|
|
||||||
67,1.4.5.5,3,敏感数据发现与监控
|
|
||||||
68,1.4.5.6,3,数据容灾备份
|
|
||||||
69,1.4.5.7,3,数据恢复
|
|
||||||
70,1.4.5.8,3,数据加密
|
|
||||||
71,1.4.5.9,3,数据防火墙
|
|
||||||
72,2,0,工业互联网平台
|
|
||||||
73,2.1,1,PaaS
|
|
||||||
74,2.1.1,2,开发工具
|
|
||||||
75,2.1.1.1,3,算法建模工具
|
|
||||||
76,2.1.1.2,3,低代码开发工具
|
|
||||||
77,2.1.1.3,3,流程开发工具
|
|
||||||
78,2.1.1.4,3,组态建模工具
|
|
||||||
79,2.1.1.5,3,数字孪生建模工具
|
|
||||||
80,2.1.2,2,工业模型库
|
|
||||||
81,2.1.2.1,3,数据算法模型
|
|
||||||
82,2.1.2.2,3,业务流程模型
|
|
||||||
83,2.1.2.3,3,研发仿真模型
|
|
||||||
84,2.1.2.4,3,行业机理模型
|
|
||||||
85,2.1.3,2,工业物联网
|
|
||||||
86,2.1.3.1,3,物联网服务
|
|
||||||
87,2.1.3.2,3,平台基础服务
|
|
||||||
88,2.1.3.3,3,工业引擎服务
|
|
||||||
89,2.1.3.4,3,应用管理服务
|
|
||||||
90,2.1.3.5,3,容器服务
|
|
||||||
91,2.1.3.6,3,微服务
|
|
||||||
92,2.1.3.7,3,制造类API
|
|
||||||
93,2.1.4,2,工业大数据
|
|
||||||
94,2.1.4.1,3,工业大数据存储
|
|
||||||
95,2.1.4.1.1,4,关系型数据库
|
|
||||||
96,2.1.4.1.2,4,分布式数据库
|
|
||||||
97,2.1.4.1.3,4,实时数据库
|
|
||||||
98,2.1.4.1.4,4,时序数据库
|
|
||||||
99,2.1.4.2,3,工业大数据管理
|
|
||||||
100,2.1.4.2.1,4,数据质量管理
|
|
||||||
101,2.1.4.2.2,4,数据安全管理
|
|
||||||
102,2.2,1,IaaS
|
|
||||||
103,2.3,1,边缘层
|
|
||||||
104,2.3.1,2,工业数据接入
|
|
||||||
105,2.3.2,2,边缘数据处理
|
|
||||||
106,2.3.3,2,协议转换
|
|
|
|
@ -1,172 +0,0 @@
|
||||||
Code,Stock_Region,Report_Year,Assets,Revenue_Log,Revenue,Size,Num_Employ_Log,Num_Employ,Source,Type_Region,1,1.1,1.1.1,1.1.2,1.1.3,1.2,1.2.1,1.2.2,1.2.3,1.3,1.3.1,1.3.1.1,1.3.1.2,1.3.1.3,1.3.1.4,1.3.1.5,1.3.1.6,1.3.1.7,1.3.2,1.3.2.1,1.3.3,1.3.3.1,1.3.3.2,1.3.3.3,1.3.3.4,1.3.3.5,1.3.3.6,1.3.3.7,1.3.4,1.3.4.1,1.3.4.2,1.3.4.3,1.3.5,1.3.5.1,1.4,1.4.1,1.4.1.1,1.4.1.2,1.4.1.3,1.4.1.4,1.4.1.5,1.4.2,1.4.2.1,1.4.2.2,1.4.2.3,1.4.2.4,1.4.2.5,1.4.2.6,1.4.2.7,1.4.3,1.4.3.1,1.4.3.2,1.4.3.3,1.4.3.4,1.4.3.5,1.4.3.6,1.4.4,1.4.4.1,1.4.4.2,1.4.4.3,1.4.4.4,1.4.4.5,1.4.5,1.4.5.1,1.4.5.2,1.4.5.3,1.4.5.4,1.4.5.5,1.4.5.6,1.4.5.7,1.4.5.8,1.4.5.9,2,2.1,2.1.1,2.1.1.1,2.1.1.2,2.1.1.3,2.1.1.4,2.1.1.5,2.1.2,2.1.2.1,2.1.2.2,2.1.2.3,2.1.2.4,2.1.3,2.1.3.1,2.1.3.2,2.1.3.3,2.1.3.4,2.1.3.5,2.1.3.6,2.1.3.7,2.1.4,2.1.4.1,2.1.4.1.1,2.1.4.1.2,2.1.4.1.3,2.1.4.1.4,2.1.4.2,2.1.4.2.1,2.1.4.2.2,2.2,2.3,2.3.1,2.3.2,2.3.3
|
|
||||||
0,SH,2021,42040000000,23.11111077,10890000000,L,8.908288886,7393,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
1,,2021,524000000,18.74276424,138000000,M,5.141663557,171,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
2,,,,18.91495248,,M,4.727387819,113,qichacha,Beijing,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
3,,,,17.40772217,,S,3.17805383,24,qichacha,Beijing,,,,,,,,,,,,,,,1,1,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
4,,,,19.65580702,,M,5.488937726,242,qichacha,Beijing,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
5,,,,18.5031337,,S,4.304065093,74,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
6,,2017,902000000,18.88441476,159000000,M,5.117993812,167,qichacha,Beijing,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
7,,,,20.22851329,,L,6.077642243,436,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,
|
|
||||||
8,,,,20.02307783,,M,5.866468057,353,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
9,,,,20.12502381,,L,5.97126184,392,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
10,,,,18.99744465,,M,4.812184355,123,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
11,SZ,2021,2831000000,20.33022325,675000000,L,7.437795122,1699,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
12,,,,19.4654905,,M,5.293304825,199,qichacha,Beijing,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
13,SZ,2021,8632000000,21.62748399,2470000000,L,9.069698042,8688,qichacha,Beijing,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,1,1,,,1,1,1,1,,1,1,,,1,1,1
|
|
||||||
14,SZ,2021,21070000000,23.11019208,10880000000,L,9.372969295,11766,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
15,SH,2021,18310000000,22.89060378,8735000000,L,9.793616881,17919,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
16,SZ,2021,2357000000,20.6624537,941000000,L,7.398174093,1633,qichacha,Beijing,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1
|
|
||||||
17,,,,17.68758638,,S,3.465735903,32,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
18,,,,19.78721596,,M,5.624017506,277,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
19,,,,18.19661508,,S,3.988984047,54,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
20,,,,16.33896504,,XS,2.079441542,8,qichacha,Beijing,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
21,SE,2021,4348926705,21.58399273,2364879075,L,9.998797732,22000,hexagon,Foreign,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
22,,,,18.78627894,,S,4.59511985,99,qichacha,Beijing,,,,,,,1,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,1,1,1,1,1,1,1,,,1,1,1,1,,1,1,,,1,1,1
|
|
||||||
23,US,2021,10365469660,22.30379074,4857504838,S,4.143134726,63,hollysys,Beijing,,,,1,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,1,1,1
|
|
||||||
24,HK,2021,2486434448,21.10974082,1471783581,M,5.605802066,272,hkexnews,Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
25,SZ,2021,1802000000,20.17681304,579000000,L,6.492239835,660,qichacha,Beijing,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
26,,,,14.9903437,,XS,0.693147181,2,,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,1,1,,,,,,,,,,,,,,
|
|
||||||
27,,,,19.43065419,,M,5.257495372,192,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
28,HK,2021,19000334000,22.12943807,4080307000,L,7.181591945,1315,hkexnews,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,
|
|
||||||
29,US,2021,4.96507E+11,27.58140221,9.51592E+11,M,5.891644212,362,jd,Beijing,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
30,,,,19.34600737,,M,5.170483995,176,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
31,,,,17.01327571,,S,2.772588722,16,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
32,,,,18.75634351,,S,4.564348191,96,qichacha,Beijing,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
33,,,,18.66057858,,S,4.465908119,87,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
34,,,,19.69132991,,M,5.525452939,251,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
35,,,,18.28276201,,S,4.077537444,59,qichacha,Beijing,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
36,SH,2021,1989000000,20.90642038,1201000000,L,6.711740395,822,qichacha,Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
37,SZ,2021,4765000000,21.68223284,2609000000,L,8.394347361,4422,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,1,,,,1,,,,,,,1,,,,,,,,,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
38,,,,17.12785796,,S,2.890371758,18,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
39,US,2021,50085024000,23.98443519,26080016000,,,,marketwatch,Foreign,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
40,SH,2021,13480000000,22.48267428,5809000000,L,9.17543832,9657,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,,,,,,1,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
41,SZ,2021,8936000000,22.20168349,4386000000,L,8.792853289,6587,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,,,,,,,,,,1,1,,1,1,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
42,,,,20.38102153,,M,6.234410726,510,qichacha,Beijing,,,,,,,,,,,,1,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
43,,2021,3042000000,21.13006339,1502000000,L,6.385194399,593,qichacha,Beijing,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
44,,2021,3049000000,21.52884845,2238000000,M,6.754604099,858,qichacha,Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
45,,,,21.43051418,,M,7.313220387,1500,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
46,,,,17.90466593,,S,3.688879454,40,qichacha,Beijing,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
47,,,,21.33304811,,L,7.21303166,1357,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,1,1,1,1,,,,,,,1,,,,,,,,,,,,,,,
|
|
||||||
48,SH,2021,26190000000,23.13917962,11200000000,L,8.319473692,4103,qichacha,Non_Beijing,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
49,,2017,219000000,18.6195316,122000000,M,5.786897381,326,qichacha,Beijing,,,,,,,,,,,,1,,,1,,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
50,,,,20.12502381,,M,5.97126184,392,qichacha,Non_Beijing,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
51,,,,18.79605616,,M,4.605170186,100,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
52,,,,18.36189706,,S,4.158883083,64,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
53,SZ,2021,11600000000,21.93282302,3352000000,L,8.743372131,6269,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,,1,1,,,,,,,1,1,1,1,,,,,1,,,,1,1,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
54,,,,21.48044599,,L,7.364547014,1579,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,1,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
55,,,,20.09221468,,M,5.937536205,379,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,,,,1,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
56,,2020,439000000,19.01400759,181000000,L,5.897153868,364,qichacha,Beijing,,,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
57,,,,19.12338465,,M,4.941642423,140,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1
|
|
||||||
58,SH,2021,17330000000,22.91290617,8932000000,L,10.07255499,23684,qichacha,Beijing,,,,,,,,1,,,,,,,,,1,,1,,,,,,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
59,,,,18.9063051,,M,4.718498871,112,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
60,,,,18.12174548,,S,3.912023005,50,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
61,,2017,629000000,19.3409635,251000000,L,5.811140993,334,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
62,,,,18.64933193,,S,4.454347296,86,qichacha,Beijing,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
63,,,,20.05292974,,M,5.897153868,364,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
64,,,,19.22865749,,M,5.049856007,156,qichacha,Beijing,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
65,SH,2021,7.62234E+11,26.80902186,4.39552E+11,L,12.53868745,278922,qichacha,Beijing,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
66,SH,2021,5.933E+11,26.51597452,3.279E+11,L,12.39942069,242661,qichacha,Beijing,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
67,SH,2021,1.84E+12,27.46645067,8.48258E+11,L,8.430545385,4585,qichacha,Beijing,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
68,SH,2021,3117000000,20.24199902,618000000,L,7.430707083,1687,qichacha,Beijing,,,,,,,,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
69,SZ,2021,66430000000,24.93746536,67640000000,L,9.74957851,17147,qichacha,Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
70,US,2021,2.52378E+11,25.92778688,1.82094E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
71,US,2021,8003332000,22.02110911,3661391520,,,,marketwatch,Foreign,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
72,US,2021,43511280320,23.29726635,13118199200,,,,marketwatch,Foreign,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
73,JP,2021,83161023470,24.06291953,28209355790,,,,fanuc,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
74,US,2021,4.43554E+11,26.18956307,2.36583E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
75,US,2021,9.08167E+11,26.70107477,3.94575E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
76,,2021,,20.06161732,516000000,,,,zippia,Foreign,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
77,US,2021,9.02016E+11,26.35266781,2.78496E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
78,,2021,,21.41879181,2004763250,,,,forbes,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
79,US,2021,31012012800,23.24364049,12433253920,,,,marketwatch,Foreign,,,,,,,,,,,,1,,,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,1,1,1,1,1,1,1,,1,,,,,1,,,,,1,1,1
|
|
||||||
80,US,2021,4.56151E+11,25.7083355,1.46214E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
81,US,2021,4.89643E+11,25.97843016,1.91553E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,1,,,,,1,,,,,,,
|
|
||||||
82,,2021,,18.0265116,67424000,,,,zippia,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
83,US,2021,1.70039E+11,25.55511763,1.25443E+11,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
84,,2021,7.80541E+11,27.07058915,5.70962E+11,,,,bosch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,1,,,,,,,,,,1,,,
|
|
||||||
85,FR,2021,1.04402E+12,26.60060295,3.56858E+11,,,,dassault ,Foreign,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
86,US,2021,8.49095E+11,27.11512238,5.96964E+11,,,,marketwatch,Foreign,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
87,US,2021,1.69771E+11,25.56118703,1.26207E+11,,,,marketwatch,Foreign,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
88,US,2021,3.96969E+11,25.97925591,1.91711E+11,,,,marketwatch,Foreign,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
89,US,2021,75779072000,24.59715157,48129040000,,,,marketwatch,Foreign,,,,1,,,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
90,,2023,,22.39969825,5346448000,,,,zoominfo,Foreign,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
91,,2023,,21.2735583,1733760000,,6.913737351,1006,rocketreach,Foreign,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
92,JP,2021,47620285930,24.38782633,39038974590,,,,omron,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
93,US,2021,30177737120,23.74657041,20559118720,,,,marketwatch,Foreign,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
94,JP,2021,1.12124E+12,27.50709063,8.83441E+11,,,,mitsubishi,Foreign,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
95,FR,2021,4.00517E+11,26.08097343,2.12238E+11,,,,schneider,Foreign,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,
|
|
||||||
96,US,2021,6.70779E+11,26.56026085,3.42748E+11,,,,marketwatch,Foreign,,,,,,,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
97,US,2021,1.36825E+12,26.95829817,5.10317E+11,,,,marketwatch,Foreign,,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
98,US,2021,2.2964E+12,27.77637214,1.15645E+12,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
99,XE,2021,1.02335E+12,26.84835831,4.57187E+11,,,,siemens,Foreign,,,,1,,,1,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,
|
|
||||||
100,US,2021,60215548800,24.08697187,28896082560,,,,marketwatch,Foreign,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
101,US,2021,3.59976E+11,24.64226064,50349807680,,,,marketwatch,Foreign,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
102,US,2021,2.89338E+12,28.80423839,3.23238E+12,,,,marketwatch,Foreign,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,
|
|
||||||
103,US,2021,94016180090,25.03108636,74278423930,,,,marketwatch,Foreign,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
104,XE,2021,1.71332E+11,25.12029384,81209156000,,10.82552176,50288,infineon ,Foreign,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
105,US,2021,1.15863E+12,27.02163609,5.43685E+11,,,,marketwatch,Foreign,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
106,US,2021,1.69022E+12,27.29874466,7.17289E+11,,,,alibaba ,Non_Beijing,,1,,,,1,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,
|
|
||||||
107,SH,2021,4852000000,21.32210234,1820000000,L,8.191740021,3611,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
108,HK,2021,3.80034E+11,25.54751533,1.24493E+11,,,,hkexnews,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,
|
|
||||||
109,SH,2021,17860000000,23.18796978,11760000000,L,8.567506005,5258,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
110,,,,18.66057858,,S,4.465908119,87,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
111,SZ,2021,2638000000,21.30436351,1788000000,L,8.360305436,4274,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,1,,,,,1,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
112,SZ,2021,545000000,19.36458664,257000000,L,6.376726948,588,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
113,,,,19.49912236,,M,5.327876169,206,qichacha,Non_Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
114,,,,18.79605616,,M,4.605170186,100,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
115,,2021,2.666E+11,26.80913106,4.396E+11,L,12.16509439,191970,qichacha,Non_Beijing,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,
|
|
||||||
116,SH,2021,2342000000,19.07820075,193000000,M,5.683579767,294,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
117,,,,14.9903437,,XS,0.693147181,2,,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
118,,,,18.44907397,,S,4.248495242,70,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
119,SZ,2021,10070000000,22.44941955,5619000000,L,9.157572306,9486,qichacha,Non_Beijing,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
120,,,,21.70305471,,M,7.593374193,1985,qichacha,Non_Beijing,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
121,,,,17.97502126,,S,3.761200116,43,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
122,SZ,2021,2668000000,20.74110576,1018000000,L,6.966024187,1060,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
123,SZ,2021,2576000000,21.63595007,2491000000,L,7.028201432,1128,qichacha,Non_Beijing,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
124,SH,2021,2.177E+11,26.15085554,2.276E+11,L,11.56051491,104874,qichacha,Non_Beijing,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,
|
|
||||||
125,,,,18.81532064,,M,4.624972813,102,qichacha,Non_Beijing,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
126,,2021,,27.17973246,6.36807E+11,L,9.210340372,10000,qichacha,Non_Beijing,,1,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,1,,,,,,,,,,,,,,,,,1,1,,,
|
|
||||||
127,,2021,,23.0573496,10320000000,M,8.853665428,7000,qichacha,Non_Beijing,,,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
128,SZ,2021,3800000000,21.08443069,1435000000,L,7.557472902,1915,qichacha,Non_Beijing,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
129,SZ,2021,3399000000,21.21429683,1634000000,L,7.857093865,2584,qichacha,Non_Beijing,,,,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
130,HK,2021,11087132000,22.15217586,4174147000,,,,hkexnews,Non_Beijing,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
131,,,,16.45354728,,S,2.197224577,9,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
132,SZ,2021,3337000000,20.8542941,1140000000,L,7.543273347,1888,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
133,SZ,2021,6249000000,19.47499277,287000000,L,6.107022888,449,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
134,,2019,446000000,19.52593758,302000000,L,6.415096959,611,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
135,SH,2021,4155000000,21.3275818,1830000000,L,7.276556403,1446,qichacha,Non_Beijing,,,,,1,,,,,,,,,,,,,,,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,1,1,,,,,,,,,,1,,,,
|
|
||||||
136,SZ,2021,3.879E+11,26.56216179,3.434E+11,L,12.01853149,165799,qichacha,Non_Beijing,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
137,NQ,,381000000,19.44672234,279000000,M,6.65544035,777,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
138,SZ,2021,2120000000,20.77300793,1051000000,L,7.329749689,1525,qichacha,Non_Beijing,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
139,SH,2021,772000000,19.79944684,397000000,L,6.244166901,515,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
140,SH,2021,1944000000,20.74990777,1027000000,L,7.499976541,1808,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,1,1,,,,,,,,,,,,,,,,,,,,,,,1,,1,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
141,,,,19.45071314,,M,5.278114659,196,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
142,SZ,2021,10950000000,22.64092347,6805000000,L,9.09346942,8897,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,1,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
143,,,,21.03606772,,L,6.907755279,1000,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
144,,2021,1130000000,20.06355343,517000000,L,6.263398263,525,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
145,,,,15.38479015,,S,1.098612289,3,,Non_Beijing,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
146,,2021,297000000,19.27934236,236000000,M,4.997212274,148,qichacha,Non_Beijing,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
147,SZ,2021,9607000000,22.77314983,7767000000,L,9.041329829,8445,qichacha,Non_Beijing,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
148,HK,2021,1.61236E+12,27.05141331,5.60118E+11,,,,hkexnews,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,1,,,,,,,,,,,,,,,,,1,,,,
|
|
||||||
149,,,,18.26613213,,S,4.060443011,58,qichacha,Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
150,SH,2021,2039000000,21.97859693,3509000000,L,5.774551546,322,qichacha,Non_Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
151,,2017,156000000,17.63219378,45453200,S,4.9698133,144,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
152,SZ,2021,7142000000,21.74894895,2789000000,L,7.850493181,2567,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
153,,,,19.12338465,,M,4.941642423,140,qichacha,Non_Beijing,,,,,,,,,,,,1,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
154,,,,19.13030869,,S,4.94875989,141,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
155,HK,2021,2.92892E+11,26.51722152,3.28309E+11,,,,xiaomi,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,
|
|
||||||
156,,,,14.9903437,,XS,0.693147181,2,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
157,,,,22.72444558,,L,8.643297068,5672,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
158,,2018,425000000,19.54235831,307000000,L,6.240275845,513,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
159,SZ,2021,1.67E+11,25.15800351,84330000000,L,9.647497927,15483,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
160,HK,2021,9505464000,22.65401405,6894667000,,,,hkexnews,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
161,,,,21.9929142,,L,7.891330758,2674,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1
|
|
||||||
162,,,,17.88978166,58807600,M,5.370638028,215,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
163,,,,18.36189706,,S,4.158883083,64,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,1,1,,,,,
|
|
||||||
164,,,,21.83955113,,L,7.733683571,2284,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
165,,,,18.29911239,,S,4.094344562,60,qichacha,Non_Beijing,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1,1,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
166,,,,19.83851913,,M,5.676753802,292,qichacha,Non_Beijing,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
167,SZ,2021,78220000000,24.43927396,41100000000,L,9.500843462,13371,qichacha,Non_Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
168,SH,2021,10350000000,22.23155657,4519000000,L,8.528528701,5057,qichacha,Non_Beijing,,,,1,,,,,,,,,,,,,,,,,,1,1,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,1,1
|
|
||||||
169,SH,2021,2.30233E+11,24.27012079,34704000000,L,8.55120807,5173,qichacha,Non_Beijing,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
||||||
170,,,,18.42068074,100000000,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
6
main.py
6
main.py
|
@ -5,9 +5,7 @@ from multiprocessing import Process
|
||||||
import argparse
|
import argparse
|
||||||
from computation import Computation
|
from computation import Computation
|
||||||
from sqlalchemy.orm import close_all_sessions
|
from sqlalchemy.orm import close_all_sessions
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from controller_db import ControllerDB
|
from controller_db import ControllerDB
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,8 +21,6 @@ def controll_db_and_process(exp_argument, reset_sample_argument, reset_db_argume
|
||||||
close_all_sessions()
|
close_all_sessions()
|
||||||
# 调用 do_process 利用计算机进行多核处理 仿真 将数据库中
|
# 调用 do_process 利用计算机进行多核处理 仿真 将数据库中
|
||||||
do_process(do_computation, controller_db)
|
do_process(do_computation, controller_db)
|
||||||
|
|
||||||
|
|
||||||
def do_process(target: object, controller_db: ControllerDB, ):
|
def do_process(target: object, controller_db: ControllerDB, ):
|
||||||
process_list = []
|
process_list = []
|
||||||
for i in range(int(args.job)):
|
for i in range(int(args.job)):
|
||||||
|
@ -34,8 +30,6 @@ def do_process(target: object, controller_db: ControllerDB, ):
|
||||||
|
|
||||||
for i in process_list:
|
for i in process_list:
|
||||||
i.join()
|
i.join()
|
||||||
|
|
||||||
|
|
||||||
def do_computation(c_db):
|
def do_computation(c_db):
|
||||||
exp = Computation(c_db)
|
exp = Computation(c_db)
|
||||||
|
|
||||||
|
|
18
my_model.py
18
my_model.py
|
@ -80,7 +80,7 @@ class MyModel(Model):
|
||||||
print(f"Failed to initialize product network: {e}")
|
print(f"Failed to initialize product network: {e}")
|
||||||
# 赋予 产业的量
|
# 赋予 产业的量
|
||||||
# 产业种类
|
# 产业种类
|
||||||
data = pd.read_csv('input_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
|
||||||
# 设备c折旧比值
|
# 设备c折旧比值
|
||||||
|
@ -89,7 +89,7 @@ class MyModel(Model):
|
||||||
def initialize_firm_network(self):
|
def initialize_firm_network(self):
|
||||||
# Read the firm data
|
# Read the firm data
|
||||||
|
|
||||||
firm = pd.read_csv("input_data/测试 Firm_amended 170.csv")
|
firm = pd.read_csv("input_data/input_firm_data/Firm_amended.csv")
|
||||||
|
|
||||||
firm['Code'] = firm['Code'].astype('string')
|
firm['Code'] = firm['Code'].astype('string')
|
||||||
firm.fillna(0, inplace=True)
|
firm.fillna(0, inplace=True)
|
||||||
|
@ -225,7 +225,7 @@ 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, 'Index']
|
||||||
|
|
||||||
type2 = self.type2.loc[product_id, '产业种类'].values[0]
|
type2 = self.type2.loc[product_id, '产业种类'].values[0]
|
||||||
|
@ -317,10 +317,10 @@ class MyModel(Model):
|
||||||
self.product_agents.append(agent)
|
self.product_agents.append(agent)
|
||||||
|
|
||||||
def resource_integration(self):
|
def resource_integration(self):
|
||||||
data_R = pd.read_csv("测试数据 companies_materials.csv")
|
data_R = pd.read_csv("input_data/input_firm_data/firms_materials.csv")
|
||||||
data_C = pd.read_csv("测试数据 companies_devices.csv")
|
data_C = pd.read_csv("input_data/input_firm_data/firms_devices.csv")
|
||||||
data_P = pd.read_csv("测试数据 companies_products.csv")
|
data_P = pd.read_csv("input_data/input_firm_data/firms_products.csv")
|
||||||
device_salvage_values = pd.read_csv('测试数据 device_salvage_values.csv')
|
device_salvage_values = pd.read_csv('input_data/device_salvage_values.csv')
|
||||||
|
|
||||||
self.device_salvage_values = device_salvage_values
|
self.device_salvage_values = device_salvage_values
|
||||||
|
|
||||||
|
@ -339,8 +339,8 @@ class MyModel(Model):
|
||||||
self.firm_resource_P = firm_resource_P
|
self.firm_resource_P = firm_resource_P
|
||||||
|
|
||||||
def j_comp_consumed_produced(self):
|
def j_comp_consumed_produced(self):
|
||||||
data_consumed = pd.read_csv('测试数据 consumed_materials.csv')
|
data_consumed = pd.read_csv('input_data/input_product_data/products_consumed_materials.csv')
|
||||||
data_produced = pd.read_csv('测试数据 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()))
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
s_id,id_firm,id_product,ts
|
||||||
|
1441,13,2.1.3.4,0
|
||||||
|
1441,126,2.1.3,1
|
||||||
|
1441,97,2.1.3,1
|
||||||
|
1441,106,2.1.3,1
|
||||||
|
1566,13,2.1.3.7,0
|
||||||
|
1566,126,2.1.3,1
|
||||||
|
2073,14,1.3.3.4,0
|
||||||
|
2073,75,1.3.3,1
|
||||||
|
2621,85,1.3.1,1
|
||||||
|
2621,21,1.3.1.3,0
|
||||||
|
2621,100,1.3.1,1
|
||||||
|
3386,22,2.1.3.7,0
|
||||||
|
3386,108,2.1.3,1
|
||||||
|
4249,23,2.3.1,0
|
||||||
|
4249,84,2.3,1
|
||||||
|
4440,25,1.3.1.7,0
|
||||||
|
4440,100,1.3.1,1
|
||||||
|
4624,74,2.1.3,1
|
||||||
|
4624,26,2.1.3.4,0
|
||||||
|
5015,31,1.3.3.3,0
|
||||||
|
5015,75,1.3.3,1
|
||||||
|
5015,97,1.3.3,1
|
||||||
|
5720,94,1.1,1
|
||||||
|
5720,36,1.1.1,0
|
||||||
|
5720,126,1.1,1
|
||||||
|
7349,80,1.3.4,1
|
||||||
|
7349,45,1.3.4.2,0
|
||||||
|
7349,77,1.3.4,1
|
||||||
|
7399,79,2.1.4.1,1
|
||||||
|
7399,45,2.1.4.1.1,0
|
||||||
|
8285,99,1.3.1,1
|
||||||
|
8285,49,1.3.1.4,0
|
||||||
|
8601,93,1.3.1,1
|
||||||
|
8601,50,1.3.1.5,0
|
||||||
|
8601,85,1.3.1,1
|
||||||
|
9072,53,1.4.3.4,0
|
||||||
|
9072,142,1.4.3,1
|
||||||
|
9382,41,1.4.5,1
|
||||||
|
9382,53,1.4.5.6,0
|
||||||
|
10098,99,1.3.3,1
|
||||||
|
10098,57,1.3.3.3,0
|
||||||
|
10121,57,2.3.1,0
|
||||||
|
10121,124,2.3,1
|
||||||
|
10521,81,1.3.4,1
|
||||||
|
10521,58,1.3.4.3,0
|
||||||
|
10521,80,1.3.4,1
|
||||||
|
11675,93,1.3.1,1
|
||||||
|
11675,68,1.3.1.3,0
|
||||||
|
11678,99,1.3.1,1
|
||||||
|
11678,85,1.3.1,1
|
||||||
|
11678,68,1.3.1.3,0
|
||||||
|
12837,126,2.1.3,1
|
||||||
|
12837,74,2.1.3,1
|
||||||
|
12837,73,2.1.3,1
|
||||||
|
12837,79,2.1.3.2,0
|
||||||
|
13084,108,2.1.3,1
|
||||||
|
13084,73,2.1.3,1
|
||||||
|
13084,106,2.1.3,1
|
||||||
|
13084,79,2.1.3.7,0
|
||||||
|
13084,148,2.1.3,1
|
||||||
|
13084,126,2.1.3,1
|
||||||
|
16647,115,1.1.3,0
|
||||||
|
16647,94,1.1,1
|
||||||
|
16903,85,2.1.1,1
|
||||||
|
16903,117,2.1.1.4,0
|
||||||
|
17379,119,1.3.1.1,0
|
||||||
|
17379,100,1.3.1,1
|
||||||
|
17922,126,2.1.1.5,0
|
||||||
|
17922,80,2.1.1,1
|
||||||
|
18824,85,2.1.1,1
|
||||||
|
18824,131,2.1.1.5,0
|
||||||
|
19562,135,2.2,0
|
||||||
|
19562,98,2,1
|
||||||
|
21447,159,2.1.2,1
|
||||||
|
21447,149,2.1.2.2,0
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
up_id_firm,up_id_product,down_id_firm,down_id_product,count
|
||||||
|
115,1.1.3,94,1.1,1
|
||||||
|
45,1.3.4.2,80,1.3.4,1
|
||||||
|
49,1.3.1.4,99,1.3.1,1
|
||||||
|
50,1.3.1.5,85,1.3.1,1
|
||||||
|
50,1.3.1.5,93,1.3.1,1
|
||||||
|
53,1.4.3.4,142,1.4.3,1
|
||||||
|
53,1.4.5.6,41,1.4.5,1
|
||||||
|
57,1.3.3.3,99,1.3.3,1
|
||||||
|
57,2.3.1,124,2.3,1
|
||||||
|
58,1.3.4.3,80,1.3.4,1
|
||||||
|
58,1.3.4.3,81,1.3.4,1
|
||||||
|
68,1.3.1.3,85,1.3.1,1
|
||||||
|
68,1.3.1.3,93,1.3.1,1
|
||||||
|
68,1.3.1.3,99,1.3.1,1
|
||||||
|
79,2.1.3.2,126,2.1.3,1
|
||||||
|
79,2.1.3.2,73,2.1.3,1
|
||||||
|
79,2.1.3.2,74,2.1.3,1
|
||||||
|
79,2.1.3.7,106,2.1.3,1
|
||||||
|
79,2.1.3.7,108,2.1.3,1
|
||||||
|
79,2.1.3.7,126,2.1.3,1
|
||||||
|
79,2.1.3.7,148,2.1.3,1
|
||||||
|
45,2.1.4.1.1,79,2.1.4.1,1
|
||||||
|
45,1.3.4.2,77,1.3.4,1
|
||||||
|
117,2.1.1.4,85,2.1.1,1
|
||||||
|
36,1.1.1,94,1.1,1
|
||||||
|
119,1.3.1.1,100,1.3.1,1
|
||||||
|
126,2.1.1.5,80,2.1.1,1
|
||||||
|
13,2.1.3.4,106,2.1.3,1
|
||||||
|
13,2.1.3.4,126,2.1.3,1
|
||||||
|
13,2.1.3.4,97,2.1.3,1
|
||||||
|
13,2.1.3.7,126,2.1.3,1
|
||||||
|
131,2.1.1.5,85,2.1.1,1
|
||||||
|
135,2.2,98,2,1
|
||||||
|
14,1.3.3.4,75,1.3.3,1
|
||||||
|
149,2.1.2.2,159,2.1.2,1
|
||||||
|
21,1.3.1.3,100,1.3.1,1
|
||||||
|
21,1.3.1.3,85,1.3.1,1
|
||||||
|
22,2.1.3.7,108,2.1.3,1
|
||||||
|
23,2.3.1,84,2.3,1
|
||||||
|
25,1.3.1.7,100,1.3.1,1
|
||||||
|
26,2.1.3.4,74,2.1.3,1
|
||||||
|
31,1.3.3.3,75,1.3.3,1
|
||||||
|
31,1.3.3.3,97,1.3.3,1
|
||||||
|
36,1.1.1,126,1.1,1
|
||||||
|
79,2.1.3.7,73,2.1.3,1
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
up_id_product,down_id_product,count
|
||||||
|
2.1.3.7,2.1.3,7
|
||||||
|
1.3.1.3,1.3.1,5
|
||||||
|
2.1.3.4,2.1.3,4
|
||||||
|
2.1.3.2,2.1.3,3
|
||||||
|
1.3.3.3,1.3.3,3
|
||||||
|
1.1.1,1.1,2
|
||||||
|
1.3.4.2,1.3.4,2
|
||||||
|
2.1.1.5,2.1.1,2
|
||||||
|
1.3.4.3,1.3.4,2
|
||||||
|
2.3.1,2.3,2
|
||||||
|
1.3.1.5,1.3.1,2
|
||||||
|
1.3.3.4,1.3.3,1
|
||||||
|
1.1.3,1.1,1
|
||||||
|
1.4.5.6,1.4.5,1
|
||||||
|
2.1.1.4,2.1.1,1
|
||||||
|
1.3.1.7,1.3.1,1
|
||||||
|
2.1.2.2,2.1.2,1
|
||||||
|
1.3.1.4,1.3.1,1
|
||||||
|
1.3.1.1,1.3.1,1
|
||||||
|
2.1.4.1.1,2.1.4.1,1
|
||||||
|
2.2,2,1
|
||||||
|
1.4.3.4,1.4.3,1
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
id_firm,count
|
||||||
|
126,6
|
||||||
|
85,5
|
||||||
|
100,3
|
||||||
|
80,3
|
||||||
|
79,3
|
||||||
|
99,3
|
||||||
|
57,2
|
||||||
|
74,2
|
||||||
|
13,2
|
||||||
|
97,2
|
||||||
|
94,2
|
||||||
|
93,2
|
||||||
|
108,2
|
||||||
|
45,2
|
||||||
|
68,2
|
||||||
|
53,2
|
||||||
|
106,2
|
||||||
|
73,2
|
||||||
|
75,2
|
||||||
|
58,1
|
||||||
|
124,1
|
||||||
|
77,1
|
||||||
|
117,1
|
||||||
|
81,1
|
||||||
|
84,1
|
||||||
|
98,1
|
||||||
|
115,1
|
||||||
|
49,1
|
||||||
|
50,1
|
||||||
|
159,1
|
||||||
|
131,1
|
||||||
|
135,1
|
||||||
|
14,1
|
||||||
|
142,1
|
||||||
|
148,1
|
||||||
|
149,1
|
||||||
|
21,1
|
||||||
|
119,1
|
||||||
|
22,1
|
||||||
|
23,1
|
||||||
|
25,1
|
||||||
|
26,1
|
||||||
|
31,1
|
||||||
|
41,1
|
||||||
|
36,1
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
id_firm,id_product,count
|
||||||
|
126,2.1.3,4
|
||||||
|
100,1.3.1,3
|
||||||
|
85,1.3.1,3
|
||||||
|
106,2.1.3,2
|
||||||
|
68,1.3.1.3,2
|
||||||
|
73,2.1.3,2
|
||||||
|
74,2.1.3,2
|
||||||
|
75,1.3.3,2
|
||||||
|
85,2.1.1,2
|
||||||
|
80,1.3.4,2
|
||||||
|
93,1.3.1,2
|
||||||
|
94,1.1,2
|
||||||
|
108,2.1.3,2
|
||||||
|
99,1.3.1,2
|
||||||
|
53,1.4.5.6,1
|
||||||
|
57,1.3.3.3,1
|
||||||
|
57,2.3.1,1
|
||||||
|
58,1.3.4.3,1
|
||||||
|
98,2,1
|
||||||
|
97,2.1.3,1
|
||||||
|
97,1.3.3,1
|
||||||
|
77,1.3.4,1
|
||||||
|
79,2.1.3.2,1
|
||||||
|
79,2.1.3.7,1
|
||||||
|
79,2.1.4.1,1
|
||||||
|
50,1.3.1.5,1
|
||||||
|
80,2.1.1,1
|
||||||
|
81,1.3.4,1
|
||||||
|
84,2.3,1
|
||||||
|
53,1.4.3.4,1
|
||||||
|
45,2.1.4.1.1,1
|
||||||
|
49,1.3.1.4,1
|
||||||
|
45,1.3.4.2,1
|
||||||
|
115,1.1.3,1
|
||||||
|
117,2.1.1.4,1
|
||||||
|
119,1.3.1.1,1
|
||||||
|
124,2.3,1
|
||||||
|
126,1.1,1
|
||||||
|
126,2.1.1.5,1
|
||||||
|
13,2.1.3.4,1
|
||||||
|
13,2.1.3.7,1
|
||||||
|
131,2.1.1.5,1
|
||||||
|
135,2.2,1
|
||||||
|
14,1.3.3.4,1
|
||||||
|
142,1.4.3,1
|
||||||
|
148,2.1.3,1
|
||||||
|
149,2.1.2.2,1
|
||||||
|
159,2.1.2,1
|
||||||
|
21,1.3.1.3,1
|
||||||
|
22,2.1.3.7,1
|
||||||
|
23,2.3.1,1
|
||||||
|
25,1.3.1.7,1
|
||||||
|
26,2.1.3.4,1
|
||||||
|
31,1.3.3.3,1
|
||||||
|
36,1.1.1,1
|
||||||
|
41,1.4.5,1
|
||||||
|
99,1.3.3,1
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
id_product,count
|
||||||
|
2.1.3,14
|
||||||
|
1.3.1,10
|
||||||
|
1.3.4,4
|
||||||
|
1.3.3,4
|
||||||
|
1.1,3
|
||||||
|
2.1.3.7,3
|
||||||
|
1.3.1.3,3
|
||||||
|
2.1.1,3
|
||||||
|
2.3,2
|
||||||
|
2.1.3.4,2
|
||||||
|
2.1.1.5,2
|
||||||
|
2.3.1,2
|
||||||
|
1.3.3.3,2
|
||||||
|
1.3.3.4,1
|
||||||
|
2.1.2.2,1
|
||||||
|
1.1.3,1
|
||||||
|
2.2,1
|
||||||
|
2.1.4.1.1,1
|
||||||
|
2.1.4.1,1
|
||||||
|
1.3.1.1,1
|
||||||
|
1.3.1.4,1
|
||||||
|
2.1.3.2,1
|
||||||
|
1.3.1.5,1
|
||||||
|
2.1.2,1
|
||||||
|
1.3.4.2,1
|
||||||
|
1.3.1.7,1
|
||||||
|
2.1.1.4,1
|
||||||
|
2,1
|
||||||
|
1.4.5.6,1
|
||||||
|
1.1.1,1
|
||||||
|
1.4.3.4,1
|
||||||
|
1.4.3,1
|
||||||
|
1.3.4.3,1
|
||||||
|
1.4.5,1
|
|
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 3.1 MiB |
|
@ -0,0 +1,8 @@
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
count = pd.read_csv("output_result/risk/count.csv",
|
||||||
|
dtype={'s_id': str, 'id_firm': str})
|
||||||
|
print(count)
|
||||||
|
print(len(count['s_id'].unique()))
|
||||||
|
count_max_ts = count.groupby('s_id')['ts'].max()
|
||||||
|
print(count_max_ts.value_counts())
|
|
@ -0,0 +1,99 @@
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import networkx as nx
|
||||||
|
|
||||||
|
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||||
|
|
||||||
|
# count firm category
|
||||||
|
count_firm = pd.read_csv("output_result/risk/count_firm.csv")
|
||||||
|
print(count_firm.describe())
|
||||||
|
|
||||||
|
count_dcp = pd.read_csv("output_result/risk/count_dcp.csv",
|
||||||
|
dtype={
|
||||||
|
'up_id_firm': str,
|
||||||
|
'down_id_firm': str
|
||||||
|
})
|
||||||
|
# print(count_dcp)
|
||||||
|
count_dcp = count_dcp[count_dcp['count'] > 35]
|
||||||
|
|
||||||
|
list_firm = count_dcp['up_id_firm'].tolist(
|
||||||
|
) + count_dcp['down_id_firm'].tolist()
|
||||||
|
list_firm = list(set(list_firm))
|
||||||
|
|
||||||
|
# init graph firm
|
||||||
|
Firm = pd.read_csv("input_data/input_firm_data/Firm_amended.csv")
|
||||||
|
Firm['Code'] = Firm['Code'].astype('string')
|
||||||
|
Firm.fillna(0, inplace=True)
|
||||||
|
Firm_attr = Firm.loc[:, ["Code", "Type_Region", "Revenue_Log"]]
|
||||||
|
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_product = []
|
||||||
|
grouped = firm_industry_relation.groupby('Firm_Code')['Product_Code'].apply(list)
|
||||||
|
firm_product.append(grouped)
|
||||||
|
Firm_attr['Product_Code'] = Firm_attr['Code'].map(grouped)
|
||||||
|
Firm_attr.set_index('Code', inplace=True)
|
||||||
|
|
||||||
|
G_firm = nx.MultiDiGraph()
|
||||||
|
G_firm.add_nodes_from(list_firm)
|
||||||
|
|
||||||
|
firm_labels_dict = {}
|
||||||
|
for code in G_firm.nodes:
|
||||||
|
firm_labels_dict[code] = Firm_attr.loc[code].to_dict()
|
||||||
|
nx.set_node_attributes(G_firm, firm_labels_dict)
|
||||||
|
|
||||||
|
count_max = count_dcp['count'].max()
|
||||||
|
count_min = count_dcp['count'].min()
|
||||||
|
k = 5 / (count_max - count_min)
|
||||||
|
for _, row in count_dcp.iterrows():
|
||||||
|
# print(row)
|
||||||
|
lst_add_edge = [(
|
||||||
|
row['up_id_firm'],
|
||||||
|
row['down_id_firm'],
|
||||||
|
{
|
||||||
|
'up_id_product': row['up_id_product'],
|
||||||
|
'down_id_product': row['down_id_product'],
|
||||||
|
'edge_label': f"{row['up_id_product']} - {row['down_id_product']}",
|
||||||
|
'edge_width': k * (row['count'] - count_min),
|
||||||
|
'count': row['count']
|
||||||
|
})]
|
||||||
|
G_firm.add_edges_from(lst_add_edge)
|
||||||
|
|
||||||
|
# dcp_networkx
|
||||||
|
pos = nx.nx_agraph.graphviz_layout(G_firm, prog="dot", args="")
|
||||||
|
node_label = nx.get_node_attributes(G_firm, 'Revenue_Log')
|
||||||
|
# desensitize
|
||||||
|
node_label = {
|
||||||
|
key: key
|
||||||
|
for key in node_label.keys()
|
||||||
|
}
|
||||||
|
node_size = list(nx.get_node_attributes(G_firm, 'Revenue_Log').values())
|
||||||
|
node_size = list(map(lambda x: x**2, node_size))
|
||||||
|
edge_label = nx.get_edge_attributes(G_firm, "edge_label")
|
||||||
|
edge_label = {(n1, n2): label for (n1, n2, _), label in edge_label.items()}
|
||||||
|
edge_width = nx.get_edge_attributes(G_firm, "edge_width")
|
||||||
|
edge_width = [w for (n1, n2, _), w in edge_width.items()]
|
||||||
|
colors = nx.get_edge_attributes(G_firm, "count")
|
||||||
|
colors = [w for (n1, n2, _), w in colors.items()]
|
||||||
|
vmin = min(colors)
|
||||||
|
vmax = max(colors)
|
||||||
|
cmap = plt.cm.Blues
|
||||||
|
fig = plt.figure(figsize=(10, 8), dpi=300)
|
||||||
|
nx.draw(G_firm,
|
||||||
|
pos,
|
||||||
|
node_size=node_size,
|
||||||
|
labels=node_label,
|
||||||
|
font_size=8,
|
||||||
|
width=3,
|
||||||
|
edge_color=colors,
|
||||||
|
edge_cmap=cmap,
|
||||||
|
edge_vmin=vmin,
|
||||||
|
edge_vmax=vmax)
|
||||||
|
nx.draw_networkx_edge_labels(G_firm, pos, edge_label, font_size=6)
|
||||||
|
sm = plt.cm.ScalarMappable(cmap=cmap, norm=plt.Normalize(vmin=vmin, vmax=vmax))
|
||||||
|
sm._A = []
|
||||||
|
position = fig.add_axes([0.95, 0.05, 0.01, 0.3])
|
||||||
|
cb = plt.colorbar(sm, fraction=0.01, cax=position)
|
||||||
|
cb.ax.tick_params(labelsize=10)
|
||||||
|
cb.outline.set_visible(False)
|
||||||
|
plt.savefig("output_result\\risk\\count_dcp_network")
|
||||||
|
plt.close()
|
|
@ -0,0 +1,155 @@
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import networkx as nx
|
||||||
|
|
||||||
|
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||||
|
|
||||||
|
count_prod = pd.read_csv("output_result/risk/count_prod.csv")
|
||||||
|
print(count_prod)
|
||||||
|
|
||||||
|
# category
|
||||||
|
print(count_prod.describe())
|
||||||
|
|
||||||
|
# prod_networkx
|
||||||
|
BomNodes = pd.read_csv('input_data/input_product_data/BomNodes.csv', index_col=0)
|
||||||
|
BomNodes.set_index('Code', inplace=True)
|
||||||
|
BomCateNet = pd.read_csv('input_data/input_product_data/BomCateNet.csv', index_col=0)
|
||||||
|
BomCateNet.fillna(0, inplace=True)
|
||||||
|
|
||||||
|
G = nx.from_pandas_adjacency(BomCateNet.T, create_using=nx.MultiDiGraph())
|
||||||
|
|
||||||
|
labels_dict = {}
|
||||||
|
for code in G.nodes:
|
||||||
|
node_attr = BomNodes.loc[code].to_dict()
|
||||||
|
index_list = count_prod[count_prod['id_product'] == code].index.tolist()
|
||||||
|
index = index_list[0] if len(index_list) == 1 else -1
|
||||||
|
node_attr['count'] = count_prod['count'].get(index, 0)
|
||||||
|
node_attr['node_size'] = count_prod['count'].get(index, 0)
|
||||||
|
node_attr['node_color'] = count_prod['count'].get(index, 0)
|
||||||
|
labels_dict[code] = node_attr
|
||||||
|
nx.set_node_attributes(G, labels_dict)
|
||||||
|
# print(labels_dict)
|
||||||
|
|
||||||
|
pos = nx.nx_agraph.graphviz_layout(G, prog="twopi", args="")
|
||||||
|
dict_node_name = nx.get_node_attributes(G, 'Name')
|
||||||
|
node_labels = {}
|
||||||
|
for node in nx.nodes(G):
|
||||||
|
node_labels[node] = f"{node} {str(dict_node_name[node])}"
|
||||||
|
# node_labels[node] = f"{str(dict_node_name[node])}"
|
||||||
|
colors = list(nx.get_node_attributes(G, 'node_color').values())
|
||||||
|
vmin = min(colors)
|
||||||
|
vmax = max(colors)
|
||||||
|
cmap = plt.cm.Blues
|
||||||
|
fig = plt.figure(figsize=(10, 10), dpi=300)
|
||||||
|
nx.draw(G,
|
||||||
|
pos,
|
||||||
|
node_size=list(nx.get_node_attributes(G, 'node_size').values()),
|
||||||
|
labels=node_labels,
|
||||||
|
font_size=6,
|
||||||
|
node_color=colors,
|
||||||
|
cmap=cmap,
|
||||||
|
vmin=vmin,
|
||||||
|
vmax=vmax,
|
||||||
|
edge_color='grey')
|
||||||
|
sm = plt.cm.ScalarMappable(cmap=cmap, norm=plt.Normalize(vmin=vmin, vmax=vmax))
|
||||||
|
sm._A = []
|
||||||
|
position = fig.add_axes([0.01, 0.05, 0.01, 0.3])
|
||||||
|
cb = plt.colorbar(sm, fraction=0.01, cax=position)
|
||||||
|
cb.ax.tick_params(labelsize=8)
|
||||||
|
cb.outline.set_visible(False)
|
||||||
|
plt.savefig("output_result\\risk\\count_prod_network")
|
||||||
|
plt.close()
|
||||||
|
|
||||||
|
# dcp_prod
|
||||||
|
count_dcp = pd.read_csv("output_result/risk/count_dcp.csv",
|
||||||
|
dtype={
|
||||||
|
'up_id_firm': str,
|
||||||
|
'down_id_firm': str
|
||||||
|
})
|
||||||
|
count_dcp_prod = count_dcp.groupby(
|
||||||
|
['up_id_product',
|
||||||
|
'down_id_product'])['count'].sum()
|
||||||
|
count_dcp_prod = count_dcp_prod.reset_index()
|
||||||
|
count_dcp_prod.sort_values('count', inplace=True, ascending=False)
|
||||||
|
count_dcp_prod.to_csv('output_result\\risk\\count_dcp_prod.csv',
|
||||||
|
index=False,
|
||||||
|
encoding='utf-8-sig')
|
||||||
|
count_dcp_prod = count_dcp_prod[count_dcp_prod['count'] > 50]
|
||||||
|
# print(count_dcp_prod)
|
||||||
|
|
||||||
|
list_prod = count_dcp_prod['up_id_product'].tolist(
|
||||||
|
) + count_dcp['down_id_product'].tolist()
|
||||||
|
list_prod = list(set(list_prod))
|
||||||
|
|
||||||
|
# init graph bom
|
||||||
|
|
||||||
|
BomNodes = pd.read_csv('input_data/input_product_data/BomNodes.csv', index_col=0)
|
||||||
|
BomNodes.set_index('Code', inplace=True)
|
||||||
|
|
||||||
|
g_bom = nx.MultiDiGraph()
|
||||||
|
g_bom.add_nodes_from(list_prod)
|
||||||
|
|
||||||
|
bom_labels_dict = {}
|
||||||
|
for code in list_prod:
|
||||||
|
dct_attr = BomNodes.loc[code].to_dict()
|
||||||
|
bom_labels_dict[code] = dct_attr
|
||||||
|
nx.set_node_attributes(g_bom, bom_labels_dict)
|
||||||
|
|
||||||
|
|
||||||
|
count_max = count_dcp_prod['count'].max()
|
||||||
|
count_min = count_dcp_prod['count'].min()
|
||||||
|
k = 5 / (count_max - count_min)
|
||||||
|
for _, row in count_dcp_prod.iterrows():
|
||||||
|
# print(row)
|
||||||
|
lst_add_edge = [(
|
||||||
|
row['up_id_product'],
|
||||||
|
row['down_id_product'],
|
||||||
|
{
|
||||||
|
'count': row['count']
|
||||||
|
})]
|
||||||
|
g_bom.add_edges_from(lst_add_edge)
|
||||||
|
|
||||||
|
# dcp_networkx
|
||||||
|
pos = nx.nx_agraph.graphviz_layout(g_bom, prog="dot", args="")
|
||||||
|
node_labels = nx.get_node_attributes(g_bom, 'Name')
|
||||||
|
# rename node 1
|
||||||
|
# node_labels['1'] = '解决方案'
|
||||||
|
temp = {}
|
||||||
|
for key, value in node_labels.items():
|
||||||
|
temp[key] = key + " " + value
|
||||||
|
node_labels = temp
|
||||||
|
colors = nx.get_edge_attributes(g_bom, "count")
|
||||||
|
colors = [w for (n1, n2, _), w in colors.items()]
|
||||||
|
vmin = min(colors)
|
||||||
|
vmax = max(colors)
|
||||||
|
cmap = plt.cm.Blues
|
||||||
|
|
||||||
|
pos_new = {}
|
||||||
|
for node, p in pos.items():
|
||||||
|
pos_new[node] = (p[1], p[0])
|
||||||
|
|
||||||
|
fig = plt.figure(figsize=(6, 10), dpi=300)
|
||||||
|
# plt.subplots_adjust(right=0.7)
|
||||||
|
nx.draw(g_bom,
|
||||||
|
pos_new,
|
||||||
|
node_size=50,
|
||||||
|
labels=node_labels,
|
||||||
|
font_size=5,
|
||||||
|
width=1.5,
|
||||||
|
edge_color=colors,
|
||||||
|
edge_cmap=cmap,
|
||||||
|
edge_vmin=vmin,
|
||||||
|
edge_vmax=vmax)
|
||||||
|
plt.axis('off')
|
||||||
|
axis = plt.gca()
|
||||||
|
axis.set_xlim([1.2*x for x in axis.get_xlim()])
|
||||||
|
axis.set_ylim([1.2*y for y in axis.get_ylim()])
|
||||||
|
|
||||||
|
sm = plt.cm.ScalarMappable(cmap=cmap, norm=plt.Normalize(vmin=vmin, vmax=vmax))
|
||||||
|
sm._A = []
|
||||||
|
position = fig.add_axes([0.75, 0.1, 0.01, 0.2])
|
||||||
|
cb = plt.colorbar(sm, fraction=0.01, cax=position)
|
||||||
|
cb.ax.tick_params(labelsize=8)
|
||||||
|
cb.outline.set_visible(False)
|
||||||
|
plt.savefig("output_result\\risk\\count_dcp_prod_network")
|
||||||
|
plt.close()
|
|
@ -0,0 +1,139 @@
|
||||||
|
from sqlalchemy import text
|
||||||
|
from orm import engine, connection
|
||||||
|
import pandas as pd
|
||||||
|
import networkx as nx
|
||||||
|
import json
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
# prep data
|
||||||
|
Firm = pd.read_csv("input_data/input_firm_data/Firm_amended.csv")
|
||||||
|
Firm['Code'] = Firm['Code'].astype('string')
|
||||||
|
Firm.fillna(0, inplace=True)
|
||||||
|
BomNodes = pd.read_csv('input_data/input_product_data/BomNodes.csv', index_col=0)
|
||||||
|
|
||||||
|
with open('SQL_analysis_risk.sql', 'r') as f:
|
||||||
|
str_sql = text(f.read())
|
||||||
|
|
||||||
|
result = pd.read_sql(sql=str_sql,
|
||||||
|
con=connection)
|
||||||
|
result.to_csv('output_result\\risk\\count.csv',
|
||||||
|
index=False,
|
||||||
|
encoding='utf-8-sig')
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# G bom
|
||||||
|
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||||
|
|
||||||
|
exp_id = 1
|
||||||
|
G_bom_str = pd.read_sql(
|
||||||
|
sql=text(f'select g_bom from iiabmdb.without_exp_experiment '
|
||||||
|
f'where id = {exp_id};'),
|
||||||
|
con=connection)['g_bom'].tolist()[0]
|
||||||
|
G_bom = nx.adjacency_graph(json.loads(G_bom_str))
|
||||||
|
pos = nx.nx_agraph.graphviz_layout(G_bom, prog="twopi", args="")
|
||||||
|
node_labels = nx.get_node_attributes(G_bom, 'Name')
|
||||||
|
# rename node 1
|
||||||
|
# node_labels['1'] = '工业互联网'
|
||||||
|
# node_labels['1.1'] = '工业自动化硬件'
|
||||||
|
# node_labels['1.4'] = '工业互联网安全管理'
|
||||||
|
# node_labels['1.2.1'] = '网络互联服务'
|
||||||
|
# node_labels['1.2.2'] = '标识解析服务'
|
||||||
|
# node_labels['1.2.3'] = '数据互通服务'
|
||||||
|
# node_labels['1.3.1'] = '设计研发软件'
|
||||||
|
# node_labels['1.3.2'] = '采购供应软件'
|
||||||
|
# node_labels['1.3.3'] = '生产制造软件'
|
||||||
|
# node_labels['1.3.4'] = '企业运营软件'
|
||||||
|
# node_labels['1.3.5'] = '仓储物流软件'
|
||||||
|
plt.figure(figsize=(12, 12), dpi=300)
|
||||||
|
nx.draw_networkx_nodes(G_bom, pos)
|
||||||
|
nx.draw_networkx_edges(G_bom, pos)
|
||||||
|
nx.draw_networkx_labels(G_bom, pos, labels=node_labels, font_size=6)
|
||||||
|
# plt.show()
|
||||||
|
plt.savefig(f"output_result\\risk\\g_bom_exp_id_{exp_id}.png")
|
||||||
|
plt.close()
|
||||||
|
|
||||||
|
# G firm
|
||||||
|
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||||
|
|
||||||
|
sample_id = 1
|
||||||
|
|
||||||
|
G_firm_str = pd.read_sql(
|
||||||
|
sql=text(f'select g_firm from iiabmdb.without_exp_sample '
|
||||||
|
f'where id = {exp_id};'),
|
||||||
|
con=connection)['g_firm'].tolist()[0]
|
||||||
|
|
||||||
|
G_firm = nx.adjacency_graph(json.loads(G_firm_str))
|
||||||
|
pos = nx.nx_agraph.graphviz_layout(G_firm, prog="twopi", args="")
|
||||||
|
# desensitize
|
||||||
|
node_label = nx.get_node_attributes(G_firm, 'Revenue_Log')
|
||||||
|
node_label = {
|
||||||
|
key: key
|
||||||
|
for key in node_label.keys()
|
||||||
|
}
|
||||||
|
node_size = list(nx.get_node_attributes(G_firm, 'Revenue_Log').values())
|
||||||
|
node_size = list(map(lambda x: x**2, node_size))
|
||||||
|
edge_label = nx.get_edge_attributes(G_firm, "Product")
|
||||||
|
edge_label = {(n1, n2): label for (n1, n2, _), label in edge_label.items()}
|
||||||
|
plt.figure(figsize=(12, 12), dpi=300)
|
||||||
|
nx.draw(G_firm, pos, node_size=node_size, labels=node_label, font_size=6)
|
||||||
|
nx.draw_networkx_edge_labels(G_firm, pos, edge_label, font_size=4)
|
||||||
|
# plt.show()
|
||||||
|
plt.savefig(f"output_result\\risk\\g_firm_sample_id_{exp_id}_de.png")
|
||||||
|
plt.close()
|
||||||
|
|
||||||
|
# count firm product
|
||||||
|
count_firm_prod = result.value_counts(subset=['id_firm', 'id_product'])
|
||||||
|
count_firm_prod.name = 'count'
|
||||||
|
count_firm_prod = count_firm_prod.to_frame().reset_index()
|
||||||
|
count_firm_prod.to_csv('output_result\\risk\\count_firm_prod.csv',
|
||||||
|
index=False,
|
||||||
|
encoding='utf-8-sig')
|
||||||
|
print(count_firm_prod)
|
||||||
|
|
||||||
|
# count firm
|
||||||
|
count_firm = count_firm_prod.groupby('id_firm')['count'].sum()
|
||||||
|
count_firm = count_firm.to_frame().reset_index()
|
||||||
|
count_firm.sort_values('count', inplace=True, ascending=False)
|
||||||
|
count_firm.to_csv('output_result\\risk\\count_firm.csv',
|
||||||
|
index=False,
|
||||||
|
encoding='utf-8-sig')
|
||||||
|
print(count_firm)
|
||||||
|
|
||||||
|
# count product
|
||||||
|
count_prod = count_firm_prod.groupby('id_product')['count'].sum()
|
||||||
|
count_prod = count_prod.to_frame().reset_index()
|
||||||
|
count_prod.sort_values('count', inplace=True, ascending=False)
|
||||||
|
count_prod.to_csv('output_result\\risk\\count_prod.csv',
|
||||||
|
index=False,
|
||||||
|
encoding='utf-8-sig')
|
||||||
|
print(count_prod)
|
||||||
|
|
||||||
|
# DCP disruption causing probability
|
||||||
|
result_disrupt_ts_above_0 = result[result['ts'] > 0]
|
||||||
|
print(result_disrupt_ts_above_0)
|
||||||
|
result_dcp = pd.DataFrame(columns=[
|
||||||
|
's_id', 'up_id_firm', 'up_id_product', 'down_id_firm', 'down_id_product'
|
||||||
|
])
|
||||||
|
for sid, group in result.groupby('s_id'):
|
||||||
|
ts_start = max(group['ts'])
|
||||||
|
while ts_start >= 1:
|
||||||
|
ts_end = ts_start - 1
|
||||||
|
while ts_end >= 0:
|
||||||
|
up = group.loc[group['ts'] == ts_end, ['id_firm', 'id_product']]
|
||||||
|
down = group.loc[group['ts'] == ts_start,
|
||||||
|
['id_firm', 'id_product']]
|
||||||
|
for _, up_row in up.iterrows():
|
||||||
|
for _, down_row in down.iterrows():
|
||||||
|
row = [sid]
|
||||||
|
row += up_row.tolist()
|
||||||
|
row += down_row.tolist()
|
||||||
|
result_dcp.loc[len(result_dcp.index)] = row
|
||||||
|
ts_end -= 1
|
||||||
|
ts_start -= 1
|
||||||
|
count_dcp = result_dcp.value_counts(
|
||||||
|
subset=['up_id_firm', 'up_id_product', 'down_id_firm', 'down_id_product'])
|
||||||
|
count_dcp.name = 'count'
|
||||||
|
count_dcp = count_dcp.to_frame().reset_index()
|
||||||
|
count_dcp.to_csv('output_result\\risk\\count_dcp.csv',
|
||||||
|
index=False, encoding='utf-8-sig')
|
||||||
|
print(count_dcp)
|
|
@ -0,0 +1,60 @@
|
||||||
|
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()
|
|
@ -1,54 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 设置随机种子
|
|
||||||
np.random.seed(42)
|
|
||||||
|
|
||||||
num_companies = 170 # 企业ID范围
|
|
||||||
|
|
||||||
# 生成企业和设备数据
|
|
||||||
num_rows = 220 # 每个表的行数
|
|
||||||
|
|
||||||
company_ids = np.arange(num_companies)
|
|
||||||
|
|
||||||
# 第二步:生成剩余的随机企业ID
|
|
||||||
remaining_ids = np.random.randint(0, num_companies, size=num_rows - num_companies)
|
|
||||||
|
|
||||||
# 合并两部分的企业ID
|
|
||||||
all_company_ids = np.concatenate([company_ids, remaining_ids])
|
|
||||||
|
|
||||||
# 第三步:对企业ID进行升序排序
|
|
||||||
all_company_ids.sort()
|
|
||||||
|
|
||||||
device_ids = np.random.randint(51, 107, size=num_rows)
|
|
||||||
material_ids = np.random.randint(0, 51, size=num_rows)
|
|
||||||
product_ids = np.random.randint(0, 107, size=num_rows)
|
|
||||||
|
|
||||||
device_quantities = np.random.randint(50, 200, size=num_rows)
|
|
||||||
material_quantities = np.random.randint(100,200, size=num_rows)
|
|
||||||
product_quantities = np.random.randint(20, 100, size=num_rows)
|
|
||||||
|
|
||||||
# 创建三个表格的数据框
|
|
||||||
df_devices = pd.DataFrame({
|
|
||||||
'Firm_Code': all_company_ids,
|
|
||||||
'设备id': device_ids,
|
|
||||||
'设备数量': device_quantities
|
|
||||||
})
|
|
||||||
|
|
||||||
df_materials = pd.DataFrame({
|
|
||||||
'Firm_Code': all_company_ids,
|
|
||||||
'材料id': material_ids,
|
|
||||||
'材料数量': material_quantities
|
|
||||||
})
|
|
||||||
|
|
||||||
df_products = pd.DataFrame({
|
|
||||||
'Firm_Code': all_company_ids,
|
|
||||||
'产品id': product_ids,
|
|
||||||
'产品数量': product_quantities
|
|
||||||
})
|
|
||||||
|
|
||||||
# 保存为CSV文件
|
|
||||||
df_devices.to_csv('测试数据 companies_devices.csv', index=False)
|
|
||||||
df_materials.to_csv('测试数据 companies_materials.csv', index=False)
|
|
||||||
df_products.to_csv('测试数据 companies_products.csv', index=False)
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 设置随机种子,确保结果可重复
|
|
||||||
np.random.seed(42)
|
|
||||||
|
|
||||||
# 定义产业数量
|
|
||||||
num_industries = 107
|
|
||||||
|
|
||||||
# 创建产业ID列表
|
|
||||||
industry_ids = [i for i in range(0, num_industries + 1)]
|
|
||||||
|
|
||||||
# 为每个产业生成随机的材料id、消耗量、产品id和制造量
|
|
||||||
consumed_materials_data = []
|
|
||||||
produced_products_data = []
|
|
||||||
|
|
||||||
for industry in industry_ids:
|
|
||||||
# 每个产业消耗的材料(生成1到3个随机材料ID和消耗量)
|
|
||||||
num_materials = np.random.randint(1, 4)
|
|
||||||
for _ in range(num_materials):
|
|
||||||
material_id = np.random.randint(0, 100)
|
|
||||||
consumption_quantity = np.random.randint(50, 500)
|
|
||||||
consumed_materials_data.append([industry, material_id, consumption_quantity])
|
|
||||||
|
|
||||||
# 每个产业制造的产品(生成1到3个随机产品ID和制造量)
|
|
||||||
num_products = np.random.randint(1, 4)
|
|
||||||
for _ in range(num_products):
|
|
||||||
product_id = np.random.randint(100, 201)
|
|
||||||
production_quantity = np.random.randint(100, 1000)
|
|
||||||
produced_products_data.append([industry, product_id, production_quantity])
|
|
||||||
|
|
||||||
# 创建两个数据框
|
|
||||||
df_consumed_materials = pd.DataFrame(consumed_materials_data, columns=['产业id', '消耗材料id', '消耗量'])
|
|
||||||
df_produced_products = pd.DataFrame(produced_products_data, columns=['产业id', '制造产品id', '制造量'])
|
|
||||||
|
|
||||||
# 保存两个数据框为CSV文件
|
|
||||||
file_path_consumed = '测试数据 consumed_materials.csv'
|
|
||||||
file_path_produced = '测试数据 produced_products.csv'
|
|
||||||
|
|
||||||
df_consumed_materials.to_csv(file_path_consumed, index=False)
|
|
||||||
df_produced_products.to_csv(file_path_produced, index=False)
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import random
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 生成170条测试数据的函数
|
|
||||||
data = pd.read_csv('input_data/BomNodes.csv')
|
|
||||||
# 生成数据
|
|
||||||
df = pd.DataFrame(data)
|
|
||||||
df['产业种类'] = [random.choice([0, 1]) for _ in range(107)]
|
|
||||||
|
|
||||||
# 显示前几行
|
|
||||||
|
|
||||||
# 保存数据到CSV文件
|
|
||||||
df.to_csv('input_data/测试 BomNodes.csv', index=False)
|
|
|
@ -1,34 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import random
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
|
|
||||||
# 生成170条测试数据的函数
|
|
||||||
def generate_test_data(num_rows=170):
|
|
||||||
data = {
|
|
||||||
'Code': [i for i in range(0, num_rows)], # 生成0到170的公司ID
|
|
||||||
'原材料': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 原材料
|
|
||||||
'库存商品': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 库存商品
|
|
||||||
'设备数量': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 固定资产原值
|
|
||||||
'Revenue': [round(random.uniform(10000, 100000), 2) for _ in range(num_rows)], # Revenue
|
|
||||||
'Total Employees (People)': [random.randint(50, 1000) for _ in range(num_rows)], # 员工总数
|
|
||||||
'Type_Region': [random.choice(['Urban', 'Rural', 'Suburban']) for _ in range(num_rows)], # 区域类型
|
|
||||||
'Self-supply Business (Yes/No)': [random.choice(['Yes', 'No']) for _ in range(num_rows)] # 自营业务
|
|
||||||
}
|
|
||||||
|
|
||||||
df = pd.DataFrame(data)
|
|
||||||
|
|
||||||
# 添加Revenue_Log列
|
|
||||||
df['Revenue_Log'] = np.log(df['Revenue'])
|
|
||||||
df['production_output'] = df['设备数量'] / 10+np.random.randint(100, 500, size=len(df))
|
|
||||||
df['demand_quantity'] = df['原材料'] / 10 +np.random.randint(100, 500, size=len(df))
|
|
||||||
return df
|
|
||||||
|
|
||||||
|
|
||||||
# 生成数据
|
|
||||||
df_test_data = generate_test_data()
|
|
||||||
# 显示前几行
|
|
||||||
print(df_test_data.head())
|
|
||||||
|
|
||||||
# 保存数据到CSV文件
|
|
||||||
df_test_data.to_csv('input_data/测试 Firm_amended 170.csv', index=False)
|
|
|
@ -1,25 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 设置数据行数
|
|
||||||
total_rows = 106 # 总共100行
|
|
||||||
material_count = 50 # 前61行为材料
|
|
||||||
|
|
||||||
# 生成产品id
|
|
||||||
product_ids = np.arange(1, total_rows + 1)
|
|
||||||
|
|
||||||
# 生成种类,前70行是材料,后面是设备
|
|
||||||
categories = ['材料'] * material_count + ['设备'] * (total_rows - material_count)
|
|
||||||
|
|
||||||
# 创建数据框
|
|
||||||
df_products = pd.DataFrame({
|
|
||||||
'产品id': product_ids,
|
|
||||||
'种类': categories
|
|
||||||
})
|
|
||||||
|
|
||||||
# 保存为CSV文件
|
|
||||||
file_path_products = '测试数据 products_materials_equipment.csv'
|
|
||||||
df_products.to_csv(file_path_products, index=False) # index=False 不保存行索引
|
|
||||||
|
|
||||||
# 打印文件路径
|
|
||||||
print(f"CSV 文件已生成,路径为: {file_path_products}")
|
|
|
@ -1,42 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 设置随机种子,以便结果可重复
|
|
||||||
np.random.seed(42)
|
|
||||||
|
|
||||||
# 定义生成数据的行数
|
|
||||||
num_rows = 170 # 生成 100 行数据
|
|
||||||
|
|
||||||
# 创建空列表来存储生成的ID
|
|
||||||
material_ids = []
|
|
||||||
device_ids = []
|
|
||||||
product_ids = []
|
|
||||||
|
|
||||||
# 生成材料、设备、产品的ID,确保同一行内的ID不重复
|
|
||||||
for _ in range(num_rows):
|
|
||||||
mat_id = np.random.randint(1, 51) # 材料ID范围 0-99
|
|
||||||
dev_id = np.random.randint(51, 107) # 设备ID范围 100-199
|
|
||||||
|
|
||||||
# 确保产品ID在当前行与材料ID和设备ID不重复
|
|
||||||
while True:
|
|
||||||
prod_id = np.random.randint(0, 107)
|
|
||||||
if prod_id != mat_id and prod_id != dev_id:
|
|
||||||
break
|
|
||||||
|
|
||||||
material_ids.append(mat_id)
|
|
||||||
device_ids.append(dev_id)
|
|
||||||
product_ids.append(prod_id)
|
|
||||||
|
|
||||||
# 创建数据框,将三个ID列结合起来
|
|
||||||
df_ids = pd.DataFrame({
|
|
||||||
'材料id': material_ids,
|
|
||||||
'设备id': device_ids,
|
|
||||||
'产品id': product_ids
|
|
||||||
})
|
|
||||||
|
|
||||||
# 指定文件路径并保存为CSV文件
|
|
||||||
file_path_ids = '测试数据 material_device_product_ids.csv'
|
|
||||||
df_ids.to_csv(file_path_ids, index=False) # index=False 表示不保存行索引
|
|
||||||
|
|
||||||
# 打印文件路径
|
|
||||||
print(f"CSV 文件已生成,路径为: {file_path_ids}")
|
|
|
@ -1,24 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
# 设置随机种子以确保结果可重复
|
|
||||||
np.random.seed(42)
|
|
||||||
|
|
||||||
# 定义行数,即生成多少个设备
|
|
||||||
num_rows = 56
|
|
||||||
|
|
||||||
# 生成设备id(例如100到200之间的设备ID)
|
|
||||||
device_ids = (i for i in range(51, 107))
|
|
||||||
|
|
||||||
# 生成设备残值,假设范围在1000到10000之间
|
|
||||||
device_salvage_values = np.random.randint(10, 1000, size=num_rows)
|
|
||||||
|
|
||||||
# 创建数据框,将设备id和设备残值结合起来
|
|
||||||
df_devices = pd.DataFrame({
|
|
||||||
'设备id': device_ids,
|
|
||||||
'设备残值': device_salvage_values
|
|
||||||
})
|
|
||||||
|
|
||||||
# 保存为CSV文件
|
|
||||||
file_path_devices = '测试数据 device_salvage_values.csv'
|
|
||||||
df_devices.to_csv(file_path_devices, index=False)
|
|
|
@ -1,17 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
Firm_Prod = pd.read_csv("input_data/Firm_amended.csv")
|
|
||||||
Firm_Prod.fillna(0, inplace=True)
|
|
||||||
|
|
||||||
# Stack the firm-product relationships into a DataFrame
|
|
||||||
firm_prod = pd.DataFrame({'bool': Firm_Prod.loc[:, '1':].stack()})
|
|
||||||
firm_prod = firm_prod[firm_prod['bool'] == 1].reset_index()
|
|
||||||
firm_prod.drop('bool', axis=1, inplace=True)
|
|
||||||
firm_prod.rename({'level_0': 'Firm_Code', 'level_1': 'Product_Code'}, axis=1, inplace=True)
|
|
||||||
firm_prod['Firm_Code'] = firm_prod['Firm_Code'].astype('string')
|
|
||||||
|
|
||||||
# 保存为新的 CSV 文件
|
|
||||||
output_file_path = 'input_data/firm_industry_relation.csv'
|
|
||||||
firm_prod.to_csv(output_file_path, index=False)
|
|
||||||
|
|
||||||
print(f"新的 CSV 文件已保存到: {output_file_path}")
|
|
Loading…
Reference in New Issue