如何解决来自带有颜色的 Pandas 数据框的网络
我需要使用以下数据创建网络
String List1
string1 [string3,string2,string20,string4]
string2 [string100,string1,string4]
string3 [string1,string80,string2]
string4 [string13,string28,string12,string16]
string5 [string3,string8,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)
但它没有做我期望的输出。
解决方法
确实应该使用 df.explode
。 networkx
有一个函数,您可以将分解的 df 直接输入:
G = nx.from_pandas_edgelist(df.explode('List1'),source='String',target='List1')
也就是说,您构建数据框的方式(即列表作为单元格条目)会引起很多麻烦,因此最好避免使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。