之前我问过这个问题,但在评论之后我想改变它:
import networkx as nx
我拥有的内容:使用 nx.from_pandas_dataframe()
从数据框中在networkx中导入的图表G. 问题:当我使用nx.from_pandas_dataframe(dataframe, 'Sources', 'Target', edge_attr=True)
时,nx认为所有其他列而不是 Sources 和 Target 是边缘的属性。
我想做什么:我想使用一些数据帧列作为节点的属性。
我的问题:有没有简单的方法可以做到这一点(比如edge_attr=True
只用一个函数添加许多属性)?如果不是如何从数据框向节点添加许多属性?
例如:
Airline Sources Target SLongitudeLatitude TLongitudeLatitude SPopulation NPopulation
Alpha A Z 1 10 101 111
Delta B Y 2 11 102 112
Gamma C X 3 12 103 113
Omega D W 4 13 104 114
Lambda E U 5 14 105 115
Zeta F T 6 15 106 116
Beta G S 7 16 107 117
Phi H R 8 17 108 118
航空公司列是边缘属性,但其余列(SLongitudeLatitude,TLongitudeLatitude和Population)是节点的属性。
或者我可以向不同数据帧的节点添加属性吗?
答案 0 :(得分:1)
Networkx只能从Pandas数据帧中获取边缘属性,但在单独的步骤中添加节点属性并不算太糟糕,因为这个答案概述了:
Load nodes with attributes and edges from DataFrame to NetworkX