我在 csv 文件中有配对值。成对的值都不一定是唯一的。我想将这个大列表拆分成独立的完整集以供进一步分析。
为了说明,我的“megalist”就像:
megalist = [['a', 'b'], ['a', 'd'], ['b', 'd'],['b', 'f'], ['r', 's'], ['t', 'r']...]
最重要的是,输出将保留配对值列表(即,不合并值)。理想情况下,输出最终会产生不同的 csv 文件,供以后单独分析。例如,这个超级巨星将是:
completeset1 = [['a', 'b'], ['a', 'd'], ['b', 'd'], ['b', 'f']]
completeset2 = [['r', 's'], ['t', 'r']]
...
在图论上下文中,我试图获取互斥子图的巨大图(其中配对值是连接的顶点)并将它们拆分为更易于管理的独立图。感谢您的任何意见!
编辑1:这让我处于一个可以前进的地方。再次感谢!
import sys, csv
import networkx as nx
megalist = csv.reader(open('megalistfile.csv'), delimiter = '\t')
G = nx.Graph()
G.add_edges_from(megalist)
subgraphs = nx.connected_components(G)
output_file = open('subgraphs.txt','w')
for subgraph in subgraphs:
output_line = str(G.edges(subgraph)) + '\n'
output_file.write(output_line)
output_file.close()