比较数据帧中的结果和分组结果

2024-10-05 11:07:06 发布

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

我有一个由电子邮件组成的数据集,它们之间的相似程度与它们的得分相关

    emlgroup1 emlgroup2  scores
79   1739.eml  1742.eml     100
130  1742.eml  1739.eml     100
153  1743.eml  1744.eml      99
157  1743.eml  1748.eml      82
170  1744.eml  1743.eml      99
175  1744.eml  1748.eml      82
231  1747.eml  1750.eml      85
242  1748.eml  1743.eml      82
243  1748.eml  1744.eml      82
282  1750.eml  1747.eml      85

我现在想做的是自动将它们分组,就像这样,并将它们放入一个新的数据框中,其中包含一列

group 1: 1739.eml, 1742.eml

group 2: 1743.eml, 1744.eml, 1748

group 3: 1747.eml, 1750.eml

所需输出:

         Col 1
1  1739.eml 1742.eml
2  1743.eml 1744.eml 1748.eml
3  1747.eml 1750.eml

我被困在逻辑部分,它将数据拆分为另一个组/集群。我对在StackOverflow上发帖很陌生,所以我希望我没有犯任何罪,提前谢谢


Tags: 数据电子邮件group集群col逻辑stackoverfloweml
1条回答
网友
1楼 · 发布于 2024-10-05 11:07:06

使用networkx解决此网络问题

import networkx as nx 
G=nx.from_pandas_edgelist(df, 'emlgroup1', 'emlgroup2')
l=list(nx.connected_components(G))
l
[{'1739.eml', '1742.eml'}, {'1744.eml', '1743.eml', '1748.eml'}, {'1747.eml', '1750.eml'}]

pd.Series(l).to_frame('col 1')
                            col 1
0            {1739.eml, 1742.eml}
1  {1744.eml, 1743.eml, 1748.eml}
2            {1747.eml, 1750.eml}

相关问题 更多 >

    热门问题