Pandas GroupBy: Erhalten einer Union von Strings
Im Kontext von Pandas bietet die Groupby-Funktion eine praktische Möglichkeit, Daten basierend auf zu gruppieren bestimmte Spalten und führen Sie Berechnungen für die resultierenden Gruppen durch. Beim Umgang mit Zeichenfolgenspalten liefern die Standardaggregationsfunktionen wie sum() jedoch möglicherweise nicht immer die gewünschten Ergebnisse.
Angenommen, wir haben einen DataFrame mit den Spalten „A“, „B“ und „C“. wobei „C“ Zeichenfolgenwerte enthält. Wir können groupby("A")["C"].sum() verwenden, um eine verkettete Zeichenfolge für jede Gruppe zu erhalten:
<code class="python">print(df.groupby("A")["C"].sum()) # Output: # A # 1 Thisstring # 2 is! # 3 a # 4 random # Name: C, dtype: object</code>
Um eine Vereinigung von Zeichenfolgen zu erhalten (d. h. die eindeutigen Zeichenfolgen in jeder Gruppe). Gruppe) können wir eine benutzerdefinierte Funktion verwenden, die die Elemente der Spalte „C“ durchläuft und eine durch Kommas getrennte Zeichenfolge erstellt, die von geschweiften Klammern umgeben ist.
<code class="python">def get_string_union(group): return "{%s}" % ', '.join(group['C'].unique()) df.groupby('A')['C'].apply(get_string_union) # Output: # A # 1 {This, string} # 2 {is, !} # 3 {a} # 4 {random} # Name: C, dtype: object</code>
Ein anderer Ansatz besteht darin, die Funktion „Anwenden“ zusammen mit a zu verwenden Lambda-Ausdruck:
<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x)) # Output: # A # 1 {This, string} # 2 {is, !} # 3 {a} # 4 {random} # Name: C, dtype: object</code>
Bei Anwendung auf einen größeren DataFrame kann die benutzerdefinierte Funktion verwendet werden, um eine Serie zurückzugeben, die die gewünschte Vereinigung von Zeichenfolgen für jede Gruppe enthält:
<code class="python">def f(x): return Series(dict(A = x['A'].sum(), B = x['B'].sum(), C = "{%s}" % ', '.join(x['C']))) df.groupby('A').apply(f) # Output: # A B C # A # 1 2 1.615586 {This, string} # 2 4 0.421821 {is, !} # 3 3 0.463468 {a} # 4 4 0.643961 {random}</code>
Durch die Verwendung Mit benutzerdefinierten Funktionen oder der Apply-Funktion mit einem Lambda-Ausdruck können wir mit Pandas Daten, die Zeichenfolgenspalten enthalten, manipulieren und spezifische Ergebnisse daraus erhalten. Die oben genannten Methoden bieten praktische Möglichkeiten, die eindeutigen Zeichenfolgen in jeder Gruppe zu kombinieren und sie in einem gewünschten Format zurückzugeben.
Das obige ist der detaillierte Inhalt vonWie erhalte ich eine Union von Strings mit Pandas GroupBy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!