【问题标题】:Is the Dataframe is ok for representing graph?Dataframe 是否可以表示图形?
【发布时间】:2020-04-08 05:02:40
【问题描述】:

我想用 pandas.DataFrame 表示 python 中节点之间的关系 每个关系都有权重,所以我使用了这样的数据框。

       nodeA nodeB nodeC
nodeA    0     5     1
nodeB    5     0     4   
nodeC    1     4     0

但我认为这是表达关系的不恰当方式,因为数据框 是对称的,有重复的数据。

有没有比使用dataframe在python中表示图形更合适的方法?

(对不起,我的英语不好)

【问题讨论】:

    标签: python pandas dataframe graph


    【解决方案1】:

    这似乎是一种可接受的图形表示方式,实际上与nextworkx 兼容。例如,您可以按如下方式恢复nextworkx 图形对象:

    import networkx as nx
    g = nx.from_pandas_adjacency(df)
    
    print(g.edges)
    # [('nodeA', 'nodeB'), ('nodeA', 'nodeC'), ('nodeB', 'nodeC')]
    print(g.get_edge_data('nodeA', 'nodeB'))
    # {'weight': 5}
    

    如果您的图是稀疏的,您可能希望将其存储为边列表,例如正如here所讨论的那样。

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多