我有一个包含2列的数据框:[ID,ASSOCIATED_ID] 对于每个ID,我都有数据帧中其他关联IDS的列表。 这是它的综合版本:
ID ASSOCIATED_ID
1 [2,3]
2 [1,4]
3 [1]
4 [2]
5 []
如果我想创建彼此关联的ID的群集(组)(不必具有直接关联,即使有任何传递关联也是如此)。我该如何以编程方式做到这一点?
答案 0 :(得分:0)
IIUC,您可以使用networkx和connect_components:
df_e = df.explode('ASSOCIATED_ID')
G = nx.from_pandas_edgelist(df_e, 'ID','ASSOCIATED_ID')
[i for i in nx.connected_components(G)]
输出:
[{1, 2, 3, 4}, {nan, 5}]