我有这个小的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)
但是,它返回错误"无法将边缘数据(['Type'](转换为字典"。我认为类型数据是字符串,所以我在nodetype=int之后添加了data=('Type',str)
,它返回str没有属性解码。
我是否写错了read_edge函数,或者我必须在文件中签入某些内容?谢谢你的帮助。
这是我的答案,显然如果你为文件提供标题,你需要一些参数来读取它们。但是,我需要熊猫read_csv函数并将其扔到network_x from_pandas_edgelist函数。
f = pd.read_csv("small-gephiready.tsv", sep='t')
G = nx.from_pandas_edgelist(f, source='FromNodeId', target='ToNodeId')
我不太确定它是如何工作的,但下面的代码似乎为我提供了预期的结果:
首先删除标头,然后使用以下代码
nx.read_edgelist("small-gephiready.tsv", nodetype=int, data=(("Type", str),))
它加载了节点和边缘,没有任何问题。