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
Freigeben: 2024-11-28 02:36:09
Original
916 Leute haben es durchsucht

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')
])
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

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)))
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage