Python 从dataframe中的相同值可视化网络图

Python 从dataframe中的相同值可视化网络图,python,graph,networkx,graphviz,Python,Graph,Networkx,Graphviz,假设我有一个包含3794行x 2列的数据框df,其中列a-number表示节点,其边指向b-number中的节点: a_number b_number 0 0123456789343 0123456789991 1 0123456789343 0123456789633 2 0123456789343 0123456789633 3 0123456789343 0123456789628 4 0123456789343 0123

假设我有一个包含3794行x 2列的数据框
df
,其中列
a-number
表示节点,其边指向
b-number
中的节点:

      a_number         b_number
0   0123456789343   0123456789991
1   0123456789343   0123456789633
2   0123456789343   0123456789633
3   0123456789343   0123456789628
4   0123456789343   0123456789633
... ... ...
3789    0123456789697   0123456789916
3790    0123456789697   0123456789886
3791    0123456789697   0123456789572
3792    0123456789697   0123456789884
3793    0123456789697   0123456789125
3794 rows × 2 columns
其他信息:

len(df['a_number'].unique())
>>> 18

len(df['b_number'].unique())
>>>1145
我正在尝试生成图形的图像表示。下面是应用networkx的代码:

import networkx as nx
G = nx.DiGraph()

for  i, (x, y) in df.iterrows():
    G.add_node(x)
    G.add_node(y)
    G.add_edge(x,y)
    
nx.draw(G, with_labels = True, font_size=14 , node_size=2000)
问题是,如果我只想从列
a_编号
b_编号
列中的相同值可视化图形,例如:

第一图

       a_number        b_number
0   0123456789343   0123456789991
1   0123456789343   0123456789633
2   0123456789343   0123456789633
3   0123456789343   0123456789628
4   0123456789343   0123456789633
下一个图表

          a_number       b_number
3789    0123456789697   0123456789916
3790    0123456789697   0123456789886
3791    0123456789697   0123456789572
3792    0123456789697   0123456789884
3793    0123456789697   0123456789125

请告知。我可以对代码做什么?谢谢。

您可以遍历
'a_number'
的所有值:

import networkx as nx
import pandas as pd

a_values = df['a_number'].unique()

for a_value in a_values:
    df_temp = df[df['a_number'] == a_value]
   
    G = nx.DiGraph()
    
    for  i, (x, y) in df_temp.iterrows():
        G.add_node(x)
        G.add_node(y)
        G.add_edge(x,y)
    
    nx.draw(G, with_labels = True, font_size=14 , node_size=2000)
    --- save and close plot ---