Pandas 向图形中添加额外的边属性,并对dijkstra';基于networkx的s算法

Pandas 向图形中添加额外的边属性,并对dijkstra';基于networkx的s算法,pandas,dataframe,attributes,networkx,dijkstra,Pandas,Dataframe,Attributes,Networkx,Dijkstra,我有一个数据帧df_dist,其中包含以下列 df_dist = df[['S', 'D', 'L', 'RL']] 其中“S”是初始节点,“D”是目标节点L'是长度,“RL”是属性。由于我需要获得每对节点之间的最小距离(它们的数量将因项目而异),因此我使用networkx创建了一个图,然后使用Dijkstra算法获得最短路径。最后,我得到一个df,其中包含每对节点的最小距离矩阵 G = nx.from_pandas_edgelist(df_dist, 'S', 'D', 'L') djk_d

我有一个数据帧df_dist,其中包含以下列

df_dist = df[['S', 'D', 'L', 'RL']]
其中“S”是初始节点,“D”是目标节点L'是长度,“RL”是属性。由于我需要获得每对节点之间的最小距离(它们的数量将因项目而异),因此我使用networkx创建了一个图,然后使用Dijkstra算法获得最短路径。最后,我得到一个df,其中包含每对节点的最小距离矩阵

G = nx.from_pandas_edgelist(df_dist, 'S', 'D', 'L')
djk_dist=dict(nx.all_pairs_dijkstra_path_length(G, weight='L')) 
DJK=pd.DataFrame.from_dict(djk_dist).replace(0, np.nan)
我尝试的是将列“RL”的值合并为图“G”的边的属性,然后将对应于Dijkstra最小路径的边的值求和。所以我想得到的不仅仅是最小路径的矩阵,还有每个最小路径的“RL”值的总和。
有人知道这是否可能吗?我尝试了一些方法,但到目前为止没有任何效果

如果您提供示例数据,则提出解决方案会更容易。同样,您可以通过
'L'
'RL'
传递给
from pandas\u edgelist()
如下
G=nx。from pandas\u edgelist(df_dist,'S','D',['L','RL'])
,这样图形还包含额外的边属性
RL
。然后,一旦有了最小路径,就可以对每个路径进行迭代求和
G.edges[source\u node,destination\u node]['RL']