首页 > 解决方案 > 如何创建基于简单 Datafrme 的网络图

问题描述

我想知道如何根据这种类型的数据创建一个边缘列表(从,到)。两列都在 pandas 数据框中,类型为字符串。

姓名 合作伙伴
一个 A B C D
A B C D
C A,B,C,E
D A,B,D,E
C,D,E

而且我还想删除像 AA BB CC 之类的连接,....

标签: pandasgraphnetworkxadjacency-matrixedge-list

解决方案


IIUC,你可以explode你的数据并过滤它:

df2 = df.copy()
df2['Co-Workers'] = df['Co-Workers'].str.split(',')
df2 = df2.explode('Co-Workers')
df2[df2['Name'].ne(df2['Co-Workers'])]

输出:

  Name Co-Workers
0    A          B
0    A          C
0    A          D
1    B          A
1    B          C
1    B          D
2    C          A
2    C          B
2    C          E
3    D          A
3    D          B
3    D          E
4    E          C
4    E          D

推荐阅读