In Pandas kann die Verwendung der Groupby-Funktion nützlich sein, wenn Sie mit Daten arbeiten, die doppelte Werte enthalten. Wenn Sie jedoch einen zusammengefassten Wert erhalten und gleichzeitig die unterschiedlichen Werte in einer Gruppe beibehalten möchten, kann die Implementierung einer benutzerdefinierten Verknüpfungsoperation erforderlich sein.
Betrachten Sie das folgende Beispiel:
col val A Cat A Tiger B Ball B Bat
Bei Verwendung Wenn die Funktion „groupby“ verwendet wird, um die Spalte „val“ für jeden eindeutigen Wert in „col“ zu summieren, wird die folgende Ausgabe generiert:
A CatTiger B BallBat
Um ein Trennzeichen einzuführen (z. B. '-') in die verbundenen Werte kann der folgende Code verwendet werden:
df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
Dieser Ansatz führt jedoch zu einem unerwarteten Ergebnis:
A C-a-t-T-i-g-e-r B B-a-l-l-B-a-t
Das Problem tritt auf Dies liegt daran, dass die Lambda-Funktion ein Series-Objekt empfängt, das die einzelnen Werte aus der Spalte „val“ anstelle der verketteten Zeichenfolge enthält.
Um dies zu erreichen, kann der folgende alternative Ansatz verwendet werden die gewünschte durch Trennzeichen verbundene Ausgabe:
df.groupby('col')['val'].agg('-'.join)
Dies liefert die Ausgabe:
col A Cat-Tiger B Ball-Bat Name: val, dtype: object
Um den Index oder MultiIndex in Spalten zu konvertieren, können Sie die Funktion „reset_index“ verwenden:
df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
Das obige ist der detaillierte Inhalt vonWie kann man Strings innerhalb von Pandas Groupby-Ergebnissen effizient verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!