Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man die Vereinigung von Strings aus gruppierten Pandas-DataFrames effizient extrahieren?

Wie kann man die Vereinigung von Strings aus gruppierten Pandas-DataFrames effizient extrahieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 05:48:29989Durchsuche

How to Efficiently Extract the Union of Strings from Grouped Pandas DataFrames?

Union of Strings in Pandas GroupBy

Diese Frage befasst sich mit einer häufigen Herausforderung: dem Extrahieren einer Union von Strings aus einem Pandas DataFrame, gruppiert nach einem bestimmten Spalte. Wenn Sie die Funktion sum() auf eine Spalte mit Zeichenfolgen anwenden, werden diese leider nicht verkettet. Stattdessen untersucht dieser Artikel alternative Methoden, um das gewünschte Ergebnis zu erzielen.

GroupBy mit einer benutzerdefinierten Funktion verwenden

Eine Lösung besteht darin, eine benutzerdefinierte Funktion zu definieren, die einen bestimmten Vorgang anwendet zu jeder Gruppe. Beispielsweise können wir die Methode apply() verwenden, um die Gruppen zu durchlaufen und einen gewünschten Wert zurückzugeben. So geht's:

<code class="python">def my_function(group):
    return "{%s}" % ', '.join(group['C'])</code>

Diese Funktion kombiniert die Zeichenfolgen in der Spalte „C“ jeder Gruppe zu einer in geschweiften Klammern eingeschlossenen Menge.

<code class="python">df.groupby('A')['C'].apply(my_function)</code>

Verwenden von GroupBy mit Lambda Ausdruck

Eine einfachere Syntax beinhaltet die Verwendung eines Lambda-Ausdrucks:

<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))</code>

Dieser Lambda-Ausdruck führt die gleiche Verkettungsoperation wie die benutzerdefinierte Funktion aus.

Gruppen kombinieren

Manchmal kann es nützlich sein, Informationen aus mehreren Gruppen in einer einzigen Serie zusammenzufassen. Hier ist ein Beispiel:

<code class="python">def f(group):
    return Series(dict(A=group['A'].sum(),
                       B=group['B'].sum(),
                       C="{%s}" % ', '.join(group['C'])))</code>

Diese Funktion aggregiert die Spalten „A“ und „B“ mit sum() und kombiniert die Spalten „C“ zu einem Satz.

<code class="python">df.groupby('A').apply(f)</code>

Dies Der Ansatz liefert einen DataFrame mit den aggregierten Werten für jede Gruppe.

Durch den Einsatz dieser Methoden können Sie effektiv die Vereinigung von Zeichenfolgen aus gruppierten Pandas DataFrames extrahieren und so die Möglichkeit freischalten, textbasierte Daten auf sinnvolle Weise zu analysieren und zu visualisieren .

Das obige ist der detaillierte Inhalt vonWie kann man die Vereinigung von Strings aus gruppierten Pandas-DataFrames effizient extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn