Код: Выделить всё
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)
Ожидаемый результат:
Код: Выделить всё
lot count
0 {6309025, 6410558, 6375540, 6375538} 3
1 {6410558} 3
2 {6314113} 3
Подробнее здесь: https://stackoverflow.com/questions/790 ... -column-an