Gruppierte Werte mit einem Trennzeichen in Pandas verbinden
Bei Verwendung der Groupby-Funktion zum Gruppieren von Daten mit mehreren Werten tritt dieses Problem häufig auf diese Werte ohne Trennzeichen zu verketten. Um dieses Problem zu lösen, können Sie die agg-Methode nutzen.
Bedenken Sie den folgenden DataFrame:
col | val -----|----- A | Cat A | Tiger B | Ball B | Bat
Um diese Zeilen basierend auf der Spalte „col“ zu gruppieren und die Werte in der Spalte „val“ zu verketten, verwenden Sie den folgenden Code:
import pandas as pd df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']}) grouped = df.groupby('col')['val'].agg('-'.join)
Dieser Ansatz sollte das gewünschte Ergebnis liefern Ergebnis:
col | val -----|----- A | Cat-Tiger B | Ball-Bat
Wenn jedoch alternativ die Apply-Methode verwendet wird, kann es zu einem unerwarteten Ergebnis mit mehrfach vorkommenden Bindestrichwerten kommen, wie unten dargestellt:
df.groupby('col')['val'].apply(lambda x: '-'.join(x)) col | val -----|----- A | C-a-t-T-i-g-e-r B | B-a-l-l-B-a-t
Um dieses Problem zu vermeiden, verwenden Sie stattdessen die agg-Methode, wie im obigen Beispiel gezeigt.
Zusätzlich können Sie zum Konvertieren des gruppierten Index oder MultiIndex in reguläre Spalten verwenden die Methode „reset_index“:
df1 = grouped.reset_index(name='new')
Das obige ist der detaillierte Inhalt vonWie kann man gruppierte Werte in Pandas effizient mit einem Trennzeichen verbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!