Pandas GroupBy mit Delimiter Joiner
Beim Gruppieren von Daten in Pandas mit mehreren Werten kann es vorkommen, dass Werte innerhalb von Gruppen mithilfe von a verkettet werden müssen spezifisches Trennzeichen. Eine einfache Gruppierungs- und Summenoperation kann jedoch zu einer unerwünschten Ausgabe ohne das gewünschte Trennzeichen führen.
Bedenken Sie den folgenden Code:
import pandas as pd df = pd.read_csv("Inputfile.txt", sep='\t') group = df.groupby(['col'])['val'].sum() # Output: # A CatTiger # B BallBat
Dies ergibt eine einzelne Zeichenfolge mit verketteten Werten, ohne die gewünschtes Trennzeichen durch Bindestrich.
Um die gewünschte Ausgabe zu erzielen, können Sie die Funktion „Anwenden“ in Kombination mit verwenden join:
group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
Diese Lösung liefert jedoch möglicherweise immer noch nicht die erwartete Ausgabe, da in jedem Wert unerwünschte Zeichen enthalten sind.
Alternative Lösung
Erwägen Sie stattdessen die Verwendung der agg-Funktion mit dem Join-Parameter:
df.groupby('col')['val'].agg('-'.join)
Dadurch werden Werte innerhalb von Gruppen mithilfe von korrekt verkettet Bindestrich-Trennzeichen, das die gewünschte Ausgabe bereitstellt:
col A Cat-Tiger B Ball-Bat Name: val, dtype: object
Aktualisierung der Lösung
Um MultiIndex- oder Indexspalten zu verarbeiten, können Sie den Index zurücksetzen und ihn mit „reset_index“ umbenennen Funktion:
df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
Dadurch wird der Index in eine neue Spalte mit dem Namen „neu“ konvertiert, was eine bequeme Möglichkeit zur weiteren Arbeit mit bietet gruppierte Daten.
Das obige ist der detaillierte Inhalt vonWie kann ich Werte innerhalb von Pandas GroupBy-Gruppen mithilfe eines Trennzeichens effizient verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!