无法转换边缘数据网络 X

Failed to Convert Edge Data Network X

我有这个结构如下的小 gephiready.tsv 文件:

Source  Target     Type
1         2     Undirected
1         3     Undirected
1         4     Undirected
1         5     Undirected
1         6     Undirected

我想在 python 环境中通过 NetworkX 打开它,代码为:

G = nx.read_edgelist("small-gephiready.tsv", nodetype=int)

然而,它returns错误"Failed to convert edge data (['Type']) to dictionary"。我以为Type datas是string,所以我在nodetype=int后面加了data=('Type',str),它returns str没有属性decode.

我是不是把 read_edge 函数写错了,还是我必须在文件中检查一些东西?谢谢你的帮助。

这是我的回答,显然如果你给一个文件 headers,你需要一些参数来读取它们。但是,我需要 pandas read_csv 功能,并用 from_pandas_edgelist 功能将其折腾到 network_x。

f = pd.read_csv("small-gephiready.tsv", sep='\t')
G = nx.from_pandas_edgelist(f, source='FromNodeId', target='ToNodeId')

我不太确定它是如何工作的,但下面的代码似乎为我提供了预期的结果:

先去掉Headers,然后使用下面的代码

nx.read_edgelist("small-gephiready.tsv", nodetype=int, data=(("Type", str),))

加载节点和边没有任何问题。