1
我有以下的熊猫数据帧包含EdgeList都如下:创建的igraph从图表数据帧大熊猫
name1 name2 weight
0 $hort, Too Alexander, Khandi 0.083333
1 $hort, Too B-Real 0.083333
我想创建从大熊猫数据框(而不是从文件)的igraph对象。 图形太大,所以无法将其转换为邻接矩阵。怎么做?
我有以下的熊猫数据帧包含EdgeList都如下:创建的igraph从图表数据帧大熊猫
name1 name2 weight
0 $hort, Too Alexander, Khandi 0.083333
1 $hort, Too B-Real 0.083333
我想创建从大熊猫数据框(而不是从文件)的igraph对象。 图形太大,所以无法将其转换为邻接矩阵。怎么做?
只是素描/伪代码,但怎么样:
for row in df.iterrows():
graph.add_edge(row.name1, row.name2, weight=row.weight)
的方式,我总是这样做是下面的,虽然我经常重复的边缘,这就是为什么我的权重是容易改变(我假设您的熊猫数据框被命名为df):
import igraph
edgelist = []
weights = []
for i in df.index():
edge = (df.ix[i, 'name1'], df.ix[i, 'name2'])
if edge not in edgelist:
edgelist.append(edge)
weights.append(1)
else:
weights[edgelist.index(edge)] += 1
G = Graph()
G.add_edges(edgelist)
G.es['weight'] = weights