代码之家  ›  专栏  ›  技术社区  ›  Black

社交图:pandas dataframe到networkx图

  •  1
  • Black  · 技术社区  · 7 年前

    我有一个数据集,其中包含一个用户和他们拥有的每个朋友。格式类似于下面的 user_id 字段和 friend_id 包含每个朋友的相应ID的字段。

    user_id | friend_id
       A          B
       A          C
       B          A
       B          G
    

    我的目标是得到一个无向图,显示每个用户和他们的每个朋友之间的边缘,如下所示。

    A - B - G
    |
    C
    

    我很难找到如何连接 pandas networkx graphviz 以及从表格数据中创建社交图的其他资源。

    1 回复  |  直到 7 年前
        1
  •  1
  •   gyoza    7 年前

    下面是一个使用 networkx ,请 pandas ,和 matplotlib 是的。

    代码:

    import matplotlib.pyplot as plt
    import networkx as nx
    
    # store pairs to a list of tuples
    tuples = [tuple(x) for x in df.values]
    
    # set up a graph and show it
    G = nx.DiGraph()
    G.add_edges_from(tuples)
    nx.draw_networkx(G)
    plt.xticks([], [])
    plt.yticks([], [])
    plt.show()
    

    输出:

    enter image description here