使用py2neo和igraph的Graph.TupleList方法很容易.
你需要安装py2neo和igraph.
pip install py2neo
pip install python-igraph
Run Code Online (Sandbox Code Playgroud)
这两个包都依赖于一个Graph类,所以我们应该在导入时将它们别名为别的.
from py2neo import Graph as pGraph
from igraph import Graph as iGraph
Run Code Online (Sandbox Code Playgroud)
首先,使用py2neo的Graph对象连接到Neo4j .
neo4j = pGraph()
Run Code Online (Sandbox Code Playgroud)
然后编写Cypher查询以返回边缘列表.假设我们将示例电影数据集加载到Neo4j中,我们想要一个共同行动的演员边缘列表.
query = """
MATCH (p1:Person)-[:ACTED_IN]->(:Movie)<-[:ACTED_IN]-(p2:Person)
RETURN p1.name, p2.name
"""
data = neo4j.cypher.execute(query)
print data[0]
Run Code Online (Sandbox Code Playgroud)
这为我们提供了一个共同行动的演员名单.
p1.name | p2.name
--------------+-------------
Hugo Weaving | Emil Eifrem
Run Code Online (Sandbox Code Playgroud)
方便的是,py2neo Graph.cypher.execute返回类似于命名元组的列表,因此我们可以将它直接传递给igraph的Graph.TupleList方法来创建igraph对象.
ig = iGraph.TupleList(data)
print ig
Run Code Online (Sandbox Code Playgroud)
现在我们有一个igraph对象.
<igraph.Graph at 0x1083a2908>
Run Code Online (Sandbox Code Playgroud)
谁拥有最高学位?
best = ig.vs.select(_degree = ig.maxdegree())["name"]
print best
Run Code Online (Sandbox Code Playgroud)
当然是汤姆汉克斯.
[u'Tom Hanks']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |