【发布时间】:2019-05-21 19:19:13
【问题描述】:
我有以下熊猫日期框:
df = pd.DataFrame({
'id_emp':[13524791000109, 12053850000137, 4707821000113],
'name_emp': [
'JL Consultores',
'GRAAL OURINHOS',
'SOJA COMERCIO DE DERIVADOS DE PETROLEO LTDA'
],
'name_dep': [
'DIONILSO MATEUS MARCON',
'JOSE AUGUSTO ROSA',
'LUCIO ANTONIO MOSQUINI'
],
'donnated_value': [ 750.00, 5000.00, 27350.00],
'donnated_amount': [1,1,1],
'reimbursed_value':[36000.00,410.55, 241.22],
'amount_reimbursed': [1,2,1],
'roi':[4800.00, 8.21,0.88]
})
我需要创建一个有向网络,其中 df['name_dep'] 和 df['id_emp] 是节点。然后,数据帧的每一行都提供两个节点,由具有权重的边连接。边的权重与 roi 列一致:对于 roi 的值在 0 到 100 之间,权重等于 1;介于 100 和 1000 之间,权重等于 2;最多 1000,权重等于 3。如下面的代码,我可以为特定的 name_dep 绘制一个网络:
G = nx.Graph()
deputado = 'DIONILSO MATEUS MARCON'
lista_subset_graph = list(df[df["name_dep"] == deputado]["id_emp"]) +
[deputado]
H = G.subgraph(lista_subset_graph)
nx.draw(H, style = "solid", with_labels = True)
plt.savefig("teste.png")
plt.show()
现在有必要像所有节点一样绘制网络,并在边缘添加权重。感谢您的帮助。
【问题讨论】: