【发布时间】:2019-08-20 16:26:02
【问题描述】:
我正在尝试开始使用图形工具来进行我公司的分析,作为 networkx 的更高性能替代品。 我已经设法弄清楚了很多事情(绘图、获取中心点、度数等),但有一件事我无法弄清楚。如何访问通过 add_edge_list 加载的原始顶点值?我需要这种能力才能按值查找特定顶点,例如找到它的连接组件或其他结构。
根据the documentation for add_edge_list:
可选地,如果 hashed == True,则不假定边列表中的顶点值直接对应于顶点索引。在这种情况下,它们将根据遇到的顺序映射到顶点索引,并返回具有顶点值的顶点属性映射。
我的目标是将 CSV 加载到 pandas 数据框中,对数据框执行一些操作以使其成为边缘列表格式,然后将其加载到图表中。 到目前为止,这是我的代码:
import graph_tool as gt
import pandas as pd
df = pd.read_csv('data/2019-data.csv')
G = gt.Graph(directed=False)
props = G.add_edge_list(df[['vertex1', 'vertex2']].values, hashed=True)
这可以很好地填充图表,但 props 返回空。
len(G.get_vertices())
183298
len(props.a)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: object of type 'NoneType' has no len()
有人知道这是如何工作的吗?
我在图形工具 2.29 上的 Python 3.7 虚拟环境中运行它。
注意:有一个类似的问题here,但接受的答案对我不起作用。
谢谢!
【问题讨论】:
标签: python graph-tool