我使用networkx库来测试不同的算法,比如prims和kruksal。 我有一个数据框,如所附图片。一位数是节点,其余的是权重。例如,在第0行中,5连接到7,并且它有3个不同的权重;5连接到6,它有3个不同的权重
为了添加边,我编写了以下代码来计算一个权重:
G.add_edge(data1[0][0],data1[1][0],weight=data1[2+i][0])
G.add_edge(data1[0][0],data1[5][0],weight=data1[6+i][0])
G.add_edge(data1[0][0],data1[9][0],weight=data1[10+i][0])
G.add_edge(data1[0][0],data1[13][0],weight=data1[14+i][0])
G.add_edge(data1[0][0],data1[17][0],weight=data1[18+i][0])
G.add_edge(data1[0][0],data1[21][0],weight=data1[22+i][0])
G.add_edge(data1[0][0],data1[0][0],weight=data1[0+i][0])
G.add_edge(data1[0][1],data1[1][1],weight=data1[2+i][1])
G.add_edge(data1[0][1],data1[5][1],weight=data1[6+i][1])
G.add_edge(data1[0][1],data1[9][1],weight=data1[10+i][1])
G.add_edge(data1[0][1],data1[13][1],weight=data1[14+i][1])
G.add_edge(data1[0][1],data1[17][1],weight=data1[18+i][1])
G.add_edge(data1[0][1],data1[21][1],weight=data1[22+i][1])
#G.add_edge(data1[0][1],data1[25][1],weight=data1[26+i][1])
G.add_edge(data1[0][2],data1[1][2],weight=data1[2+i][2])
G.add_edge(data1[0][2],data1[5][2],weight=data1[6+i][2])
G.add_edge(data1[0][2],data1[9][2],weight=data1[10+i][2])
G.add_edge(data1[0][2],data1[13][2],weight=data1[14+i][2])
G.add_edge(data1[0][2],data1[17][2],weight=data1[18+i][2])
G.add_edge(data1[0][2],data1[21][2],weight=data1[22+i][2])
#G.add_edge(data1[0][2],data1[25][2],weight=data1[26+i][2])
G.add_edge(data1[0][3],data1[1][3],weight=data1[2+i][3])
G.add_edge(data1[0][3],data1[5][3],weight=data1[6+i][3])
G.add_edge(data1[0][3],data1[9][3],weight=data1[10+i][3])
G.add_edge(data1[0][3],data1[13][3],weight=data1[14+i][3])
G.add_edge(data1[0][3],data1[17][3],weight=data1[18+i][3])
G.add_edge(data1[0][3],data1[21][2],weight=data1[22+i][3])
#G.add_edge(data1[0][3],data1[25][2],weight=data1[26+i][3])
G.add_edge(data1[0][4],data1[1][4],weight=data1[2+i][4])
G.add_edge(data1[0][4],data1[5][4],weight=data1[6+i][4])
G.add_edge(data1[0][4],data1[9][4],weight=data1[10+i][4])
G.add_edge(data1[0][4],data1[13][4],weight=data1[14+i][4])
G.add_edge(data1[0][4],data1[17][3],weight=data1[18+i][4])
G.add_edge(data1[0][4],data1[21][2],weight=data1[22+i][4])
#G.add_edge(data1[0][4],data1[25][2],weight=data1[26+i][4])
G.add_edge(data1[0][5],data1[1][5],weight=data1[2+i][5])
G.add_edge(data1[0][5],data1[5][5],weight=data1[6+i][5])
G.add_edge(data1[0][5],data1[9][5],weight=data1[10+i][5])
G.add_edge(data1[0][5],data1[13][5],weight=data1[14+i][5])
G.add_edge(data1[0][5],data1[17][5],weight=data1[18+i][5])
G.add_edge(data1[0][5],data1[21][5],weight=data1[22+i][5])
G.add_edge(data1[0][5],data1[25][5],weight=data1[26+i][5])
G.add_edge(data1[0][6],data1[1][6],weight=data1[2+i][6])
G.add_edge(data1[0][6],data1[5][6],weight=data1[6+i][6])
G.add_edge(data1[0][6],data1[9][6],weight=data1[10+i][6])
G.add_edge(data1[0][6],data1[13][6],weight=data1[14+i][6])
G.add_edge(data1[0][6],data1[17][6],weight=data1[18+i][6])
G.add_edge(data1[0][6],data1[21][6],weight=data1[22+i][6])
G.add_edge(data1[0][7],data1[1][7],weight=data1[2+i][7])
G.add_edge(data1[0][7],data1[5][7],weight=data1[6+i][7])
G.add_edge(data1[0][7],data1[9][7],weight=data1[10+i][7])
G.add_edge(data1[0][7],data1[13][7],weight=data1[14+i][7])
G.add_edge(data1[0][7],data1[17][7],weight=data1[18+i][7])
G.add_edge(data1[0][7],data1[21][7],weight=data1[22+i][7])
G.add_edge(data1[0][8],data1[1][8],weight=data1[2+i][8])
G.add_edge(data1[0][8],data1[5][8],weight=data1[6+i][8])
G.add_edge(data1[0][8],data1[9][8],weight=data1[10+i][8])
G.add_edge(data1[0][8],data1[13][8],weight=data1[14+i][8])
G.add_edge(data1[0][8],data1[17][8],weight=data1[18+i][8])
G.add_edge(data1[0][8],data1[21][8],weight=data1[22+i][8])
G.add_edge(data1[0][9],data1[1][9],weigh=data1[2+i][9])
G.add_edge(data1[0][9],data1[5][9],weight=data1[6+i][9])
G.add_edge(data1[0][9],data1[9][9],weight=data1[10+i][9])
G.add_edge(data1[0][9],data1[13][9],weight=data1[14+i][9])
G.add_edge(data1[0][8],data1[17][9],weight=data1[18+i][9])
G.add_edge(data1[0][8],data1[21][9],weight=data1[22+i][9])
我现在希望通过一个嵌套的for循环来自动化上面的代码。我写过:
g = 0
for i in range(0,10):
for j in range(0,9):
if data1[g+1][0] == None:
break
else:
G.add_edge(data1[0][j],data1[1+g][j],weight=data1[2+i][j])
g+=4
但是上面的代码给了我一个错误。有人能帮忙吗
目前没有回答
相关问题 更多 >
编程相关推荐