从熊猫数据框中提取无向图

时间:2019-04-12 12:09:33

标签: python pandas dataframe graph networkx

我在数据框中存储了一个有向图,每条线都是A> B和B

示例

A  B  Quantity Attr1 Attr2 ..
1  2  10       5     4
1  3  8        9     6
2  1  5        4     2
...

我想计算数量的净值,就像图表是无向的。

例如:从两个边1> 2和2> 1,我想计算一个无向边,其中“数量”是属性的函数-例如:

A   B Quantity  Attr1  Attr2 ... 
1   2 (10 - 5)  (5-4)  (4-2)

我认为我可以通过在数据框的行上进行迭代(有两个for循环)来解决此问题:

// pseudo-code
for i, nodeA in enumerate(df['A']):
    for j, nodeB in enumerate(df['B']):
        if nodeA == nodeB:
           quantity = df['A'][i]['Quantity'] - df['B'][i]['Quantity']
           // write new row on a new dataframe, representing the undirected graph

还有其他方法可以在大熊猫中使用吗? 示例:

// pseudocode

df.apply( lamdba x : computeNetValues(x) if x.A == x.B ) 

例如这些答案暗示了NetworkX-我想知道是否可以在研究图形之前在熊猫中做到这一点

Adjacency matrix from Pandas edgelist dataframe for undirected graphs

Construct NetworkX graph from Pandas DataFrame

0 个答案:

没有答案