2017-06-06 50 views
1

我有以下的熊貓數據幀包含EdgeList都如下:創建的igraph從圖表數據幀大熊貓

 name1    name2 weight 
0 $hort, Too Alexander, Khandi 0.083333 
1 $hort, Too    B-Real 0.083333 

我想創建從大熊貓數據框(而不是從文件)的igraph對象。 圖形太大,所以無法將其轉換爲鄰接矩陣。怎麼做?

回答

1

只是素描/僞代碼,但怎麼樣:

for row in df.iterrows(): 
    graph.add_edge(row.name1, row.name2, weight=row.weight) 
1

的方式,我總是這樣做是下面的,雖然我經常重複的邊緣,這就是爲什麼我的權重是容易改變(我假設您的熊貓數據框被命名爲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