gpt4 book ai didi

python - 使用 networkx 加权边缘列表时出错

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:02 25 4
gpt4 key购买 nike

我已经创建了一个加权边列表,我试图用它来生成一个加权无向图:

数据在 csv 中,在 excel 中如下所示:

node1 node2 weight

a b 0.1

a c 0.3

根据其他 StackOverflow 帖子的推荐,我一直在使用以下代码读取 csv:

fh=open("<file_location>.csv", 'r')
G = nx.read_weighted_edgelist(fh,delimiter=',')

第一行运行正常,但第二行产生错误消息:

TypeError: Failed to convert weight data weight to type type 'float'

如果我检查 G,它已正确读取节点但未读取权重,有什么想法吗?

最佳答案

编辑:根据@Joel 的建议,重组以包括对代码失败原因和解决方法的解释。 @Joel 的回答提供了代码失败原因的解释,但不是建议如何移动解决它。

解决方案

nx.read_weighted_edgelist 将忽略以 # 开头的输入行,因此如果您将 csv 文件的第一行从

node1 node2 weight

#node1 node2 weight

那么你应该能够在网络中读取权重。

另请注意,read_weighted_edgelist 接受文件路径(字符串)和文件句柄,因此如果您不再使用 fh,则不需要要先打开,直接pass就可以了。

G = nx.read_weighted_edgelist("<file_location>.csv", delimiter=',')

为什么你的代码失败了

(这是从@Joel 的回答中合并的)

当它遇到第一行时(来自你的评论:a_node1,b_node2,c_weight)

它将第一个节点解释为 a_node1,将第二个节点解释为 b_node2,并尝试将权重 c_weight 分配给边缘它们之间。

很难将字符串 c_weight 转换为 float 。所以报错。

关于python - 使用 networkx 加权边缘列表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43440478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com