Сравнение результатов в кадре данных и группировка результатов - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть набор данных, состоящий из электронных писем и того, как они похожи друг на друга и соотнесены с их оценкой.

    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, поэтому я надеюсь, что не совершаю никаких грехов, заранее спасибо!

1 Ответ

0 голосов
/ 06 декабря 2018

Эта проблема сети при использовании 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...