python - Dataframe 是否可以表示图形?
问题描述
我想使用 pandas.DataFrame 表示 python 中节点之间的关系,并且每个关系都有权重,所以我使用了这样的数据框。
nodeA nodeB nodeC
nodeA 0 5 1
nodeB 5 0 4
nodeC 1 4 0
但我认为这是表达关系的不恰当方式,因为数据框是对称的,有重复的数据。
有没有比使用数据框在 python 中表示图形更合适的方法?
(对不起,我的英语不好)
解决方案
这似乎是一种可接受的表示图的方式,实际上与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}
如果您的图是稀疏的,您可能希望将其存储为边列表,例如这里讨论的。
推荐阅读
- r - R - dplyr left_join() - 多个匹配 - 如何重新组合......?
- mongodb - 带有聚合方法的mongo查询
- python - 从计算元组项出现次数的元组创建嵌套字典
- django - 没有 Django 身份验证框架的 Django firebase 身份验证
- dask - Dask:凸矩阵优化
- flutter - AssetImage 未显示在 Flutter 中交错网格列表的卡片中
- sql-server - SQL SERVER:如何在 JOIN 子句内的表函数的参数中使用字段名称?
- c++ - 如何为自定义模板对象创建一个专门的函数模板?
- reactjs - 使用反应钩子更新部分状态
- php - 如何在没有 JS 的 Symfony 3.4 中确认删除表单提交的实体?