你可以用另一个COLATIC和COLATIC来建立一个COLATIC/COLATIC。然后将图“投影”到datetime节点上—如果两个datetime都链接到ColA/ColC节点,则在它们之间创建一个链接。在
下面的代码展示了一种创建无向图的方法。我不明白你的例子里的指示是什么意思。在import csv
import StringIO
import networkx as nx
from networkx.algorithms import bipartite
data ="""Datetime,ColA,ColB,ColC
2015/07/12 08:45:34,ABC,12,
2015/07/12 08:46:04,DCD,10,ABC
2015/07/12 08:46:23,XYZ,34,ABC
2015/07/12 08:46:56,MNO,10,XYZ
2015/07/12 08:46:56,FGH,20,"""
G = nx.Graph()
csvfile = StringIO.StringIO(data)
reader = csv.DictReader(csvfile)
nodes = []
for row in reader:
nodes.append(row['Datetime'])
G.add_node(row['Datetime'])
if row['ColA'] != '':
G.add_edge(row['Datetime'],row['ColA'])
if row['ColC'] != '':
G.add_edge(row['Datetime'],row['ColC'])
print G.edges()
B = bipartite.projected_graph(G, nodes)
print B.edges()
输出
^{pr2}$