从网络中的Dataframe向节点添加属性

时间:2018-01-21 18:59:39

标签: python-3.x attributes nodes networkx

之前我问过这个问题,但在评论之后我想改变它:

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)是节点的属性。

或者我可以向不同数据帧的节点添加属性吗?

1 个答案:

答案 0 :(得分:1)

Networkx只能从Pandas数据帧中获取边缘属性,但在单独的步骤中添加节点属性并不算太糟糕,因为这个答案概述了:

Load nodes with attributes and edges from DataFrame to NetworkX