用networkx定向网络和边缘权重

时间:2019-05-21 19:19:14

标签: python pandas networkx

我有以下大熊猫日期框架:

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() 

现在,有必要像绘制所有节点一样绘制网络,并在边缘上施加权重。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

name_dep

P.S。看来您应该交换name_empname_empname_dep中的值更适合 handleSubmit = (e) => { e.preventDefault(); const form = this.props.form; const { password, username } = this.state; let data = new FormData(); // creates a new FormData object data.append('username', form.getFieldValue('username')); data.append('password', form.getFieldValue('password')); axios.post('http://127.0.0.1:8000/user/login/', data) .then(res=>console.log(res)) .then(data => { if(data.status == 200){ history.push('/home');}}) .catch(err=>console.log(err)) };