Pandas Groupby mit Trennzeichen-Join
Mit der Pandas-Bibliothek können Sie Zeilen mit mehreren Werten mithilfe der Groupby-Funktion gruppieren. Standardmäßig werden die Werte jedoch ohne Trennzeichen verkettet. In diesem Artikel geht es um das Problem der Einführung eines Trennzeichens, um die Werte innerhalb jeder Gruppe zu trennen.
Sie haben zunächst versucht, die Werte mithilfe der Funktion „apply()“ mit einem Bindestrich (-) zu verbinden, dies führte jedoch zu einem Ganzen Zeichenfolge wird verkettet, anstatt die einzelnen Werte zu trennen.
Ein einfacherer Ansatz ist die Verwendung der agg()-Funktion mit dem Join-Parameter. So können Sie die gewünschte Ausgabe erzielen:
group = df.groupby('col')['val'].agg('-'.join)
Dadurch werden die Werte innerhalb jeder Gruppe mit einem Bindestrich als Trennzeichen verbunden. Das Ergebnis wird sein:
col A Cat-Tiger B Ball-Bat
Beachten Sie, dass der Index immer noch in der Ausgabe vorhanden ist. Wenn Sie ihn in eine Spalte konvertieren möchten, können Sie die Funktion reset_index() verwenden:
df1 = group.reset_index(name='new')
Dadurch wird der Index in eine neue Spalte mit dem Namen „new“ konvertiert. Die endgültige Ausgabe lautet:
col new 0 A Cat-Tiger 1 B Ball-Bat
Alternativ können Sie die Funktion „squeeze()“ verwenden (beachten Sie, dass diese Funktion in Pandas 1.4.0 als Funktion „_nunique“ erstellt wurde), um den Index vollständig zu entfernen und ein Serienobjekt zu erhalten:
group.squeeze()
Dies führt zu einer Reihe mit den gruppierten Werten, die durch das angegebene Trennzeichen verbunden sind:
col A Cat-Tiger B Ball-Bat Name: val
Das obige ist der detaillierte Inhalt vonWie kann ich Pandas Groupby verwenden, um Werte mit einem Trennzeichen zu verbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!