我从事经济学工作,对编程还是新手,所以请原谅我在这里缺乏技术知识。
我正在使用iPython 2.7,并想将生产系统作为网络进行分析。因此,我试图从csv文件中创建一个网络。 csv文件包括两列。第一列是工作订单的表示,第二列表示工作站。工作站必须成为网络的节点。
ORDER_ID;MACHINE_ID;
0;0;
0;1;
1;1;
2;2;
2;3;
2;4;
2;5;
2;6;
2;1;
2;7;
2;2;
3;8;
3;1;
4;9;
5;10;
5;10;
5;5;
5;11;
5;0;
5;12;
只要不同行的订单ID相同,这些行的节点必须连接为边缘。一旦订单ID发生更改,下一行就必须被检查并作为边缘链接。为了更好地进行分析,边缘是有向的。我编写了一个算法,但在选择行项目时遇到了问题。
import networkx as nx
import csv
g = nx.DiGraph()
with open("Data.csv") as dataSet:
data = csv.reader()
for OrderID1 in dataSet:
OrderID = OrderID[0]
for MachineID1 in dataSet:
MachineID = MachineID1[1]
if OrderID[0][i] == OrderID[0][i+1]:
g.add_edge(MachineID[0][i],MachineID[0][i+1])
elif OrderID[0][i] != row[0][i+1]:
g.add_edge(row[0][i+1],row[0][i+2])
else:
dataSet.close()
结果应该是这样的:
g.edges()
>>> (0,1),(2,3),(3,4),(4,5),(5,6),(6,1),(1,7),(7,2),(8,1),(10,10),(10,5),(5,11),(11,0),(0,12)
感谢所有抽出时间回复的人!