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

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Групповые строки, которые содержат хотя бы один общий элемент в списке из того же столбца и агрегировать другой столбец

Сообщение Anonymous »

У меня есть DataFrame с 1 столбцом, который содержит элемент списка, и 1 столбец с целым числом. Я хотел бы сгруппировать все списки, которые имеют хотя бы один общий элемент, а затем агрегировать другой столбец. < /P>

Код: Выделить всё

import pandas as pd
import json
import networkx as nx

data = {'lot': [['6309025'],
['6309025', '6375538', '6375540'],
['6410558'], ['6314113']],
'count': [1, 2, 3, 3]}

df = pd.DataFrame(data)

df['id'] = df.index
df = df.explode('lot')

G = nx.from_pandas_edgelist(df, 'lot', 'id')

l = list(nx.connected_components(G))

L = [dict.fromkeys(y, x) for x, y in enumerate(l)]

d = {k: v for d in L for k, v in d.items()}

s = df.groupby(df.id.map(d)).lot.apply(set)
< /code>
Я использовал решение из этого вопроса. Тем не менее, я не могу найти способ агрегировать столбец count 
.
Ожидаемый вывод:

Код: Выделить всё

    lot                                             count
0  {6309025, 6410558, 6375540, 6375538}             3
1  {6410558}                                        3
2  {6314113}                                        3
Есть мысли?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -column-an
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»