【发布时间】:2015-07-09 14:13:29
【问题描述】:
我有一个代表加权二分网络的数据框,如下所示:
L1,L2,w
1,A,0.9
2,A,0.2
3,A,0.5
1,B,0.9
2,B,0.8
L1 列中的节点连接到 L2 列中的节点,每个边都有一个权重值 (w)。
我想将网络投影到 L1 级别。第一步是连接 L1 值,如果它们连接到相同的 L2 值,则乘以权重,例如:
1,2,0.9*0.2
2,3,0.2*0.5
1,3,0.9*0.5
1,2,0.9*0.8
第二步是构建一个新的数据框(加权边列表),总结重复边的权重:
1,2,0.9*0.2 + 0.9*0.8
2,3,0.2*0.5
1,3,0.9*0.5
我知道这有点奇怪;我使用 networkx bipartite 函数尝试了相同的方法,但是在其中处理权重有点棘手,所以我更喜欢使用 pandas 数据框。
【问题讨论】: