在txt.file中使用3列边表

时间:2018-11-27 12:10:44

标签: python networkx

我是NetworkX的新手,但遇到了问题。我有.txt文件,其中3列中包含大量数据,并以制表符分隔,如下所示:

1   21   \N
2   61   \N
2   62   1201231
50  11   54432

如何仅使用前两列使用read.edgelist('data.txt', create_using=nx.Graph(), nodetype=int)

1 个答案:

答案 0 :(得分:1)

不使用nx.read_edgelist()但默认构造函数如下的解决方案。

>>> with open("file.txt") as f:
...     g = nx.Graph([line.split()[:2] for line in f])
... 
>>> g.edges()
EdgeView([('1', '21'), ('2', '61'), ('2', '62'), ('50', '11')])

如果节点类型必须为整数,则可以在读取文件时将其转换为int

例如,

[tuple(map(int,line.split()[:2])) for line in f]