我是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)
?
答案 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]