从带有颜色的数据帧开始的网络

2024-09-30 20:19:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用以下数据创建一个网络

String        List1                           
string1 [string3, string2, string20, string4]   
string2 [string100, string1, string4]
string3 [string1, string80, string2]
string4 [string13, string28, string12, string16]
string5 [string3, string8, string12, string6]
string6 []  

带有间接链接,显示变量/节点之间的链接。 例如,string1与string3、string2、string30、string4链接。String2与string100、string1和string4链接,依此类推

我已尝试使用Networkx

import itertools.combinations as comb

edges = set()
for col in df:
    for _, data in df.groupby(col):
        edges.update(comb(data.index, 2))

G = nx.Graph()
G.add_nodes_from(df.index)
G.add_edges_from(edges)

但它并没有达到我预期的输出效果


Tags: indffordata链接colcombedges
1条回答
网友
1楼 · 发布于 2024-09-30 20:19:16

实际上,您应该使用df.explodenetworkx有一个函数,您可以直接将分解后的df馈送到:

G = nx.from_pandas_edgelist(df.explode('List1'), source='String', target='List1')

也就是说,构建数据帧的方式(即列表作为单元格条目)会带来很多麻烦,因此最好避免

相关问题 更多 >