Networkx:从Pandas Dataframe定向的两方网络

时间:2019-06-06 12:24:42

标签: python pandas networkx

从下面的数据框中:

df = pd.DataFrame({'id_emp':[13524791000109, 12053850000137, 4707821000113, 4707821000113],
           'name_emp':['Cristiano', 'Gaúcho', 'Fenômeno','Angelin'],
       'name_dep': ['Ronaldo','Ronaldo', 'Ronaldo', 'Ronaldo']})

使用以下代码绘制网络:

G = nx.from_pandas_edgelist(df, 'id_emp', 'name_dep', ['name_emp'], 
create_using=nx.DiGraph())
deputado = "Ronaldo"

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.figure(figsize=(7.5, 7.5))
plt.show()

我当前的输出(不考虑标签):

enter image description here

我需要做什么:

1-我需要两个边缘,而不是一个在两个边缘上都带有箭头的边缘,每个节点一个作为输入,一个作为输出;

2-我想表示为双向网络,通过格式区分节点的类型(在图像中,Luciano Ducci节点对应于数据框的一列,而编号对应于数据框的一列,就像我在数据框示例中所做的那样);

0 个答案:

没有答案