我有一个pandas数据帧,格式如下,df
A B C D
A 0 0.5 0.5 0
B 1 0 0 0
C 0.8 0 0 0.2
D 0 0 1 0
我正试图从中创建一个networkx图形。我尝试过以下代码变体:
(一)
^{pr2}$(二)
G=networkx.from_pandas_adjacency(df, create_using=networkx.DiGraph())
但是,最终发生的是图形对象:
(对于选项A)基本上只取任意两个给定节点之间的两条平行边中的一个值,删除另一条。在
对于给定的两个边之间的值,。在
例如
print( list ( filter ( lambda x: x[0]=='A' and x[1] == 'B', list(G.edges.data()) ) ) )
以及
print( list ( filter ( lambda x: x[0]=='B' and x[1] == 'A', list(G.edges.data()) ) ) )
打印选项A的1和[]。 为选项B打印两个1
我如何解决这个问题?在
尝试使用numpy作为解决方法。在
在更一般的情况下,要获得
^{pr2}$label_mapping
,可以使用这似乎是
networkx 2.0
中的一个错误。他们将在2.1中修复它。有关详细信息,请参阅此issue。在相关问题 更多 >
编程相关推荐