[FIXED] Sammeln Sie Elemente, die Informationen mit Pandas teilen

Ausgabe

Meine Aufgabe ist es, Elemente zu sammeln, die etwas gemeinsam haben.

Beispiel:

pd.DataFrame({'C1': ['A', 'B', 'C', 'D', 'R', 'X'], 'C2': ['B', 'C', 'D', 'E', 'S', 'Y']})
    C1  C2
0   A   B
1   B   C
2   C   D
3   D   E
4   R   S
5   X   Y

und das suche ich:

    Groups
0   [A, B, C, D, E]
1   [R, S]
2   [X, Y]

Irgendeine Idee ?

Lösung

Sie sollten networkx.connected_componentshier verwenden.

Die Annäherung an Ihre Daten als Diagramm ist eine zuverlässige Methode, um sicherzustellen, dass alle Werte zusammen gruppiert werden.

import networkx as nx

G = nx.from_pandas_edgelist(df, source='C1', target='C2')

out = pd.DataFrame({'Groups': map(sorted, nx.connected_components(G))})

Ausgang:

            Groups
0  [A, B, C, D, E]
1           [R, S]
2           [X, Y]

Ihre Grafik:

Geben Sie hier die Bildbeschreibung ein


Beantwortet von –
mozway


Antwort geprüft von –
Katrina (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like