Heim >Backend-Entwicklung >Python-Tutorial >Wie kann Pandas Begriffe in gruppierten DataFrames effizient zählen?

Wie kann Pandas Begriffe in gruppierten DataFrames effizient zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 02:36:09908Durchsuche

How Can Pandas Efficiently Count Terms within Grouped DataFrames?

Begriffe in gruppierten DataFrames zählen: Eine Pandas-Lösung

Dieser Artikel befasst sich mit der Herausforderung, Begriffe innerhalb von Gruppen zu zählen und die Ergebnisse in einem DataFrame zusammenzufassen . Mit Pandas lässt sich diese Aufgabe elegant lösen, ohne auf ineffiziente Schleifen zurückgreifen zu müssen. Betrachten Sie den folgenden DataFrame:

df = pd.DataFrame([
    (1, 1, 'term1'),
    (1, 2, 'term2'),
    (1, 1, 'term1'),
    (1, 1, 'term2'),
    (2, 2, 'term3'),
    (2, 3, 'term1'),
    (2, 2, 'term1')
])

Das Ziel besteht darin, nach „ID“ und „Gruppe“ zu gruppieren und die Vorkommen jedes „Begriffs“ zu zählen. Um dies zu erreichen, bietet Pandas eine prägnante Lösung:

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

Diese Operation gruppiert den DataFrame nach den Spalten „id“, „group“ und „term“, zählt das Vorkommen jeder eindeutigen Kombination und gibt a zurück zusammengefasster DataFrame mit Multi-Index-Spalten und einer Einzelwertspalte namens „size“, die die Anzahl enthält. Die Funktion „Unstack“ formt den DataFrame in ein breites Format mit einer Spalte für jeden eindeutigen Begriff um, wie unten gezeigt:

id  group term   size
1   1     term1  3
    1     term2  2
    2     term3  1
2   2     term1  3

Timing-Analyse

Für größere Für die Verarbeitung von Datensätzen ist das Verständnis der Leistungsmerkmale dieser Lösung von entscheidender Bedeutung. Um dies zu beurteilen, betrachten Sie einen DataFrame mit 1 Million Zeilen, der mit dem folgenden Code generiert wurde:

df = pd.DataFrame(dict(id=np.random.choice(100, 1000000),
                       group=np.random.choice(20, 1000000),
                       term=np.random.choice(10, 1000000)))

Die Profilierung des Gruppierungs- und Zählvorgangs zeigt, dass er selbst große Datensätze effizient verarbeiten kann:

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

Diese Leistung ist auf die optimierte Natur der zugrunde liegenden Gruppierungs- und Aggregationsmechanismen von Pandas zurückzuführen, was es zu einem hervorragenden Werkzeug für die effiziente Arbeit mit großen Datensätzen macht.

Das obige ist der detaillierte Inhalt vonWie kann Pandas Begriffe in gruppierten DataFrames effizient zählen?. 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