如何从认识联想中创建clusters/groups?
How to create clusters/groups from knowing associations?
我有一个包含 2 列的数据框:[ID, ASSOCIATED_ID]
对于每个 ID,我都有数据框中其他关联 ID 的列表。
这是它的综合版本:
ID ASSOCIATED_ID
1 [2,3]
2 [1,4]
3 [1]
4 [2]
5 []
如果我想创建相互关联的 ID 集群(组)(不需要它们有直接关联,但即使有任何传递关联)。我怎样才能以编程方式做到这一点?
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}]
我有一个包含 2 列的数据框:[ID, ASSOCIATED_ID] 对于每个 ID,我都有数据框中其他关联 ID 的列表。 这是它的综合版本:
ID ASSOCIATED_ID
1 [2,3]
2 [1,4]
3 [1]
4 [2]
5 []
如果我想创建相互关联的 ID 集群(组)(不需要它们有直接关联,但即使有任何传递关联)。我怎样才能以编程方式做到这一点?
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}]