analysis
This commit is contained in:
parent
05f43fb341
commit
aac2607284
AmendFirm_20230216.ipynb
analysis
count.csvcount_dcp_network20230407.pngcount_dcp_prod.csvcount_dcp_prod_network20230407.pngcount_prod.xlsxcount_prod_network20230406.pngcount_prod_pie.pngg_bom_exp_id_1.png
analysis_count.pyanalysis_firm_network.pyanalysis_prod.pyanalysis_prod_network.pysize_stats.pysum_result.pytest.ipynb
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After ![]() (image error) Size: 568 KiB |
|
@ -0,0 +1,98 @@
|
|||
up_id_product,up_name_product,down_id_product,down_name_product,count
|
||||
1.4,工业互联网安全,1,供给,118
|
||||
1.4.3,网络安全,1.4,工业互联网安全,96
|
||||
1.4.5,数据安全,1.4,工业互联网安全,92
|
||||
1.4.2,控制安全,1.4,工业互联网安全,92
|
||||
2.1,PaaS,2,工业互联网平台,77
|
||||
1.4.4.5,安全态势感知,1.4.4,平台安全,76
|
||||
1.3.2.1,供应链管理SCM,1.3.2,采购供应,76
|
||||
1.3.2,采购供应,1.3,工业软件,74
|
||||
1.3.5,仓储物流,1.3,工业软件,72
|
||||
1.1.1,工业计算芯片,1.1,工业自动化,67
|
||||
1.4.5.8,数据加密,1.4.5,数据安全,50
|
||||
1.4.5.1,恶意代码检测系统,1.4.5,数据安全,50
|
||||
1.4.3.6,沙箱类设备,1.4.3,网络安全,50
|
||||
1.4.2.7,工控原生安全,1.4.2,控制安全,50
|
||||
1.4.2.3,工控漏洞扫描,1.4.2,控制安全,50
|
||||
1.4.1,设备安全,1.4,工业互联网安全,50
|
||||
1.4.3.2,流量检测,1.4.3,网络安全,50
|
||||
2.3.3,协议转换,2.3,边缘层,37
|
||||
1.3.2.1,供应链管理SCM,1.3,工业软件,37
|
||||
2.3.1,工业数据接入,2.3,边缘层,33
|
||||
2.1.3.6,微服务,2.1.3,工业物联网,33
|
||||
2.3.2,边缘数据处理,2.3,边缘层,30
|
||||
2.1.3.4,应用管理服务,2.1.3,工业物联网,30
|
||||
2.1.2.4,行业机理模型,2.1.2,工业模型库,30
|
||||
2.1.2.2,业务流程模型,2.1.2,工业模型库,28
|
||||
2.1.3.7,制造类API,2.1.3,工业物联网,28
|
||||
1.3.1.1,计算机辅助设计CAD,1.3.1,设计研发,28
|
||||
2.1.2.1,数据算法模型,2.1.2,工业模型库,27
|
||||
1.3.1.2,计算机辅助工程CAE,1.3.1,设计研发,26
|
||||
2.1.3.1,物联网服务,2.1.3,工业物联网,25
|
||||
1.1.2,工业控制器,1.1,工业自动化,24
|
||||
2.1.3.5,容器服务,2.1.3,工业物联网,24
|
||||
1.4.3.6,沙箱类设备,1.4,工业互联网安全,23
|
||||
2.1.1.2,低代码开发工具,2.1.1,开发工具,23
|
||||
1.1.3,工业服务器,1.1,工业自动化,23
|
||||
1.4.3.2,流量检测,1.4,工业互联网安全,23
|
||||
2.1.3.3,工业引擎服务,2.1.3,工业物联网,23
|
||||
1.4.5.1,恶意代码检测系统,1.4,工业互联网安全,21
|
||||
1.4.5.8,数据加密,1.4,工业互联网安全,21
|
||||
1.4.2.3,工控漏洞扫描,1.4,工业互联网安全,21
|
||||
2.1.3.2,平台基础服务,2.1.3,工业物联网,21
|
||||
1.4.2.7,工控原生安全,1.4,工业互联网安全,21
|
||||
1.4.3,网络安全,1,供给,21
|
||||
1.3.1.4,计算机辅助工艺过程设计CAPP,1.3.1,设计研发,20
|
||||
1.4.5,数据安全,1,供给,19
|
||||
1.4.2,控制安全,1,供给,19
|
||||
2.1.2.3,研发仿真模型,2.1.2,工业模型库,18
|
||||
2.1.1.5,数字孪生建模工具,2.1.1,开发工具,18
|
||||
1.3.1.6,产品生命周期管理PLM,1.3.1,设计研发,18
|
||||
1.2.3,数据互通,1.2,工业互联网网络,17
|
||||
2.1.1.1,算法建模工具,2.1.1,开发工具,15
|
||||
2.1.1.4,组态建模工具,2.1.1,开发工具,14
|
||||
1.3.3.2,分布式控制系统DCS,1.3.3,生产制造,14
|
||||
1.2.2,标识解析,1.2,工业互联网网络,13
|
||||
1.2.1,网络互联,1.2,工业互联网网络,13
|
||||
2.1.1.3,流程开发工具,2.1.1,开发工具,12
|
||||
1.3.1.7,电子设计自动化EDA,1.3.1,设计研发,12
|
||||
1.3.3.3,数据采集与监视控制系统SCADA,1.3.3,生产制造,11
|
||||
2,工业互联网平台,1,供给,10
|
||||
1.3.3.6,运维保障系统MRO,1.3.3,生产制造,10
|
||||
1.3.3.1,制造执行系统MES,1.3.3,生产制造,10
|
||||
1.4.4,平台安全,1.4,工业互联网安全,10
|
||||
1.4.1,设备安全,1,供给,9
|
||||
1.3.1,设计研发,1.3,工业软件,8
|
||||
1.3.3.4,可编程逻揖控制系统PLC,1.3.3,生产制造,7
|
||||
1.3.4.1,企业资源计划ERP,1.3.4,企业运营管理,6
|
||||
1.3.3.5,企业资产管理系统EAM,1.3.3,生产制造,6
|
||||
1.4.3.6,沙箱类设备,1,供给,6
|
||||
1.4.3.2,流量检测,1,供给,6
|
||||
1.4.5.1,恶意代码检测系统,1,供给,5
|
||||
1.4.4.5,安全态势感知,1.4,工业互联网安全,5
|
||||
2.1,PaaS,1,供给,5
|
||||
1.4.2.7,工控原生安全,1,供给,5
|
||||
1.3.1.5,产品数据管理PDM,1.3.1,设计研发,5
|
||||
1.4.5.8,数据加密,1,供给,5
|
||||
1.4.2.3,工控漏洞扫描,1,供给,5
|
||||
2.1.4.2.2,数据安全管理,2.1.4.2,工业大数据管理,5
|
||||
2.1.4.2.1,数据质量管理,2.1.4.2,工业大数据管理,5
|
||||
1.3,工业软件,1,供给,4
|
||||
2.1.4.1.4,时序数据库,2.1.4.1,工业大数据存储,4
|
||||
2.3,边缘层,2,工业互联网平台,3
|
||||
2.2,IaaS,2,工业互联网平台,3
|
||||
2.1.4.1.1,关系型数据库,2.1.4.1,工业大数据存储,3
|
||||
2.1.4.1.2,分布式数据库,2.1.4.1,工业大数据存储,3
|
||||
2.1.4.1.3,实时数据库,2.1.4.1,工业大数据存储,3
|
||||
2.1.4.2,工业大数据管理,2.1.4,工业大数据,3
|
||||
1.3.1.3,计算机辅助制造CAM,1.3.1,设计研发,2
|
||||
1.3.2,采购供应,1,供给,2
|
||||
1.3.3,生产制造,1.3,工业软件,1
|
||||
2.3.3,协议转换,2,工业互联网平台,1
|
||||
1.3.4.3,人力资源管理HRM,1.3.4,企业运营管理,1
|
||||
2.1.4.1,工业大数据存储,2.1.4,工业大数据,1
|
||||
1.3.3.7,故障预测与健康管理PHM,1.3.3,生产制造,1
|
||||
1.3.4,企业运营管理,1.3,工业软件,1
|
||||
1.3.5,仓储物流,1,供给,1
|
||||
1.4.4.1,身份鉴别与访问控制,1.4.4,平台安全,1
|
||||
1.3.2.1,供应链管理SCM,1,供给,1
|
|
Binary file not shown.
After ![]() (image error) Size: 649 KiB |
Binary file not shown.
Binary file not shown.
After ![]() (image error) Size: 1.1 MiB |
Binary file not shown.
After ![]() (image error) Size: 53 KiB |
Binary file not shown.
Before ![]() (image error) Size: 1.0 MiB After ![]() (image error) Size: 928 KiB ![]() ![]() |
|
@ -0,0 +1,8 @@
|
|||
import pandas as pd
|
||||
|
||||
count = pd.read_csv("analysis\\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())
|
||||
print(count_max_ts.value_counts()/1593)
|
|
@ -0,0 +1,101 @@
|
|||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import networkx as nx
|
||||
import math
|
||||
|
||||
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||
|
||||
# count firm category
|
||||
count_firm = pd.read_csv("analysis\\count_firm.csv")
|
||||
count_firm = count_firm[count_firm['count'] > 4]
|
||||
print(count_firm.describe())
|
||||
|
||||
count_dcp = pd.read_csv("analysis\\count_dcp.csv",
|
||||
dtype={
|
||||
'up_id_firm': str,
|
||||
'down_id_firm': str
|
||||
})
|
||||
# print(count_dcp)
|
||||
count_dcp = count_dcp[count_dcp['count'] > 2]
|
||||
|
||||
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("Firm_amended.csv")
|
||||
Firm['Code'] = Firm['Code'].astype('string')
|
||||
Firm.fillna(0, inplace=True)
|
||||
Firm_attr = Firm.loc[:, ["Code", "Name", "Type_Region", "Revenue_Log"]]
|
||||
firm_product = []
|
||||
for _, row in Firm.loc[:, '1':].iterrows():
|
||||
firm_product.append(row[row == 1].index.to_list())
|
||||
Firm_attr.loc[:, 'Product_Code'] = firm_product
|
||||
Firm_attr.set_index('Code', 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'],
|
||||
'up_name_product': row['up_name_product'],
|
||||
'down_id_product': row['down_id_product'],
|
||||
'down_name_product': row['down_name_product'],
|
||||
# 'edge_label': f"{row['up_id_product']} {row['up_name_product']} - {row['down_id_product']} {row['down_name_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, 'Name')
|
||||
# node_degree = dict(G_firm.out_degree())
|
||||
node_label = {
|
||||
# key: f"{node_label[key]} {node_degree[key]}"
|
||||
key: f"{node_label[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=6,
|
||||
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.9, 0.05, 0.01, 0.3])
|
||||
plt.colorbar(sm, fraction=0.01, cax=position)
|
||||
# plt.savefig("analysis\\count_dcp_network")
|
||||
plt.close()
|
|
@ -0,0 +1,22 @@
|
|||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
import networkx as nx
|
||||
import math
|
||||
|
||||
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||
|
||||
Firm = pd.read_csv("Firm_amended.csv")
|
||||
Firm['Code'] = Firm['Code'].astype('string')
|
||||
Firm.fillna(0, inplace=True)
|
||||
count_prod = pd.read_csv("analysis\\count_prod.csv")
|
||||
for index, row in count_prod.iterrows():
|
||||
count_prod.loc[index, 'num_firm'] = sum(Firm[row['id_product']]==1)
|
||||
count_prod.loc[index, 'avg_size'] = Firm.loc[Firm[row['id_product']]==1, 'Revenue_Log'].median()
|
||||
|
||||
|
||||
print(count_prod)
|
||||
# sns.scatterplot(x='count', y='avg_size',data=count_prod)
|
||||
ax = plt.subplot(projection = '3d') # 创建一个三维的绘图工程
|
||||
ax.scatter(count_prod['avg_size'], count_prod['num_firm'], count_prod['count'], c = 'r')
|
||||
plt.show()
|
|
@ -0,0 +1,176 @@
|
|||
import pandas as pd
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import networkx as nx
|
||||
import math
|
||||
|
||||
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||||
|
||||
count_prod = pd.read_csv("analysis\\count_prod.csv")
|
||||
print(count_prod)
|
||||
|
||||
# category
|
||||
print(count_prod.describe())
|
||||
|
||||
# pie
|
||||
count_prod_trim = count_prod[count_prod['count'] > 50]
|
||||
plt.pie(count_prod_trim['count'], labels=count_prod_trim['Name'])
|
||||
plt.savefig("analysis\\count_prod_pie")
|
||||
plt.close()
|
||||
|
||||
# prod_networkx
|
||||
BomNodes = pd.read_csv('BomNodes.csv', index_col=0)
|
||||
BomNodes.set_index('Code', inplace=True)
|
||||
BomCateNet = pd.read_csv('BomCateNet.csv', index_col=0)
|
||||
BomCateNet.fillna(0, inplace=True)
|
||||
|
||||
G = 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'] = 5 * 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])
|
||||
plt.colorbar(sm, fraction=0.01, cax=position)
|
||||
# plt.savefig("analysis\\count_prod_network")
|
||||
plt.close()
|
||||
|
||||
# dcp_prod
|
||||
count_dcp = pd.read_csv("analysis\\count_dcp.csv",
|
||||
dtype={
|
||||
'up_id_firm': str,
|
||||
'down_id_firm': str
|
||||
})
|
||||
count_dcp_prod = count_dcp.groupby(['up_id_product','up_name_product', 'down_id_product', 'down_name_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('analysis\\count_dcp_prod.csv',
|
||||
index=False,
|
||||
encoding='utf-8-sig')
|
||||
count_dcp_prod = count_dcp_prod[count_dcp_prod['count'] > 2]
|
||||
# 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('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')
|
||||
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
|
||||
|
||||
# dct_row = {}
|
||||
# for node, p in pos.items():
|
||||
# if p[1] not in dct_row.keys():
|
||||
# dct_row[p[1]] = {node: p}
|
||||
# else:
|
||||
# dct_row[p[1]][node] = p
|
||||
# dct_row = dict(sorted(dct_row.items(), key=lambda d: d[0], reverse=True))
|
||||
# dct_up = dct_row[max(dct_row.keys())]
|
||||
# dct_up = dict(sorted(dct_up.items(), key=lambda d: d[1][0], reverse=True))
|
||||
# h = list(dct_row.keys())[0] - list(dct_row.keys())[1]
|
||||
# n = len(dct_up.items())
|
||||
# arr_h = np.linspace(list(dct_row.keys())[0]-h/2, list(dct_row.keys())[0]+2*h, num=n)
|
||||
# dct_up_new = {}
|
||||
# for index, (node, p) in enumerate(dct_up.items()):
|
||||
# dct_up_new[node] = (p[0], arr_h[index])
|
||||
# pos_new = {}
|
||||
# for row, dct in dct_row.items():
|
||||
# if row == list(dct_row.keys())[0]:
|
||||
# pos_new.update(dct_up_new)
|
||||
# else:
|
||||
# pos_new.update(dct)
|
||||
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=6,
|
||||
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.1, 0.4, 0.01, 0.2])
|
||||
plt.colorbar(sm, fraction=0.01, cax=position)
|
||||
# plt.savefig("analysis\\count_dcp_prod_network")
|
||||
plt.close()
|
|
@ -0,0 +1,8 @@
|
|||
import pandas as pd
|
||||
|
||||
Firm = pd.read_csv("Firm.csv")
|
||||
data = Firm[['Revenue', 'Num_Employ','Size']]
|
||||
print(data.describe(include='all'))
|
||||
print(Firm[['Size']].value_counts())
|
||||
|
||||
print(Firm[['Source']].value_counts())
|
|
@ -22,6 +22,10 @@ for s_id in lst_s_id:
|
|||
result.set_index('id', inplace=True)
|
||||
result.sort_index(inplace=True)
|
||||
result['id_firm'] = result['id_firm'].astype('string')
|
||||
result.to_csv('analysis\\count.csv',
|
||||
index=False,
|
||||
encoding='utf-8-sig')
|
||||
print(result)
|
||||
|
||||
# G bom
|
||||
plt.rcParams['font.sans-serif'] = 'SimHei'
|
73
test.ipynb
73
test.ipynb
|
@ -65,6 +65,77 @@
|
|||
"list_succ_firms = [1, 1]\n",
|
||||
"round(share * len(list_succ_firms)) if round(share * len(list_succ_firms)) > 0 else 1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[0.17307692307692307, 0.19230769230769232, 0.20192307692307693, 0.21153846153846154, 0.22115384615384615]\n",
|
||||
"[0.14899116146026878, 0.1819782155490595, 0.20111703154812216, 0.22226869439668717, 0.24564489704586234]\n",
|
||||
"[0.10801741721030356, 0.16114305076975205, 0.19682056666851946, 0.2403971829915773, 0.29362178235984765]\n",
|
||||
"[0.07643198434626533, 0.13926815562848321, 0.18799234648997357, 0.25376312466637047, 0.34254438886890737]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import math\n",
|
||||
"size = [18,20,21,22,23]\n",
|
||||
"p = [s / sum(size) for s in size]\n",
|
||||
"print(p)\n",
|
||||
"for beta in [0.1, 0.2, 0.3]:\n",
|
||||
" damp_size = [math.exp(beta*s) for s in size]\n",
|
||||
" print([s / sum(damp_size) for s in damp_size])\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[0.16666666666666666, 0.5, 0.6666666666666666, 0.8333333333333334, 1.0]\n",
|
||||
"[0.8359588020779368, 0.9330329915368074, 0.960264500792218, 0.9819330445619127, 1.0]\n",
|
||||
"[0.408248290463863, 0.7071067811865476, 0.816496580927726, 0.9128709291752769, 1.0]\n",
|
||||
"[0.23849484685087588, 0.5743491774985174, 0.7229811807984657, 0.8642810744472068, 1.0]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import math\n",
|
||||
"size = [18,20,21,22,23]\n",
|
||||
"p = [(s - min(size) + 1)/(max(size)-min(size)+1) for s in size]\n",
|
||||
"print(p)\n",
|
||||
"for beta in [0.1, 0.5, 0.8]:\n",
|
||||
" p = [((s - min(size) + 1)/(max(size)-min(size)+1))**beta for s in size]\n",
|
||||
" print(p)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"32\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import multiprocess as mp\n",
|
||||
"\n",
|
||||
"print(mp.cpu_count())"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
@ -83,7 +154,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.9.13"
|
||||
"version": "3.8.8"
|
||||
},
|
||||
"orig_nbformat": 4,
|
||||
"vscode": {
|
||||
|
|
Loading…
Reference in New Issue