如何解决从熊猫数据帧向已创建的边列表添加权重列表,并将权重显示为图形中的边缘标签
我的数据存储在pandas数据框中,它具有源,目标,重量。
H = nx.from_pandas_edgelist(links,source ='source',target ='target')
使用它来创建我的边缘列表,它没有添加权重的选项,我还以除pd.DataFrame以外的其他形式保留了数据
edges_df = {'源':链接['源'], 'target':links ['target'], 'weights':links ['value']} edge_source = links ['source']
edge_target = links ['target'] weights = links ['value']
同一件事,但结构不同,我尝试使用nx.set_edge_attribute,但它沿不可迭代/可哈希的方式给出了错误,不在G [u] [v] [w]
中解决方法
最简单的方法是在创建如下所示的图形时使用edge_attr
参数。
H=nx.from_pandas_edgelist(links,source='source',target='target',edge_attr='weight')
如果您已经创建了图形并想在事实之后添加属性,则可以使用
for e in g.edges:
g.edges[e]['weight'] = df.loc[(df.source == e[0]) & (df.target == e[1]),'weight'].values[0] #use .value[0] to ensure you get the value,not an array or series
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。