Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Vorkommen von Begriffen in Pandas DataFrames effizient nach ID und Gruppe gruppieren und zählen, ohne Schleifen zu verwenden?
Bei der Datenanalyse ist es oft notwendig, Daten zu gruppieren und das Vorkommen bestimmter Werte oder Begriffe zu zählen. Diese Art der Aggregation lässt sich leicht mit den Funktionen „groupby“ und „size“ in Pandas erreichen.
Problem:
Angenommen, Sie haben einen DataFrame df mit den folgenden Spalten: id, Gruppe und Begriff. Das Ziel besteht darin, die Anzahl der Vorkommen jedes eindeutigen Begriffs für jede Kombination aus ID und Gruppe zu zählen, ohne Schleifen zu verwenden.
Lösung:
Um dies zu erreichen, haben wir können die folgenden Schritte verwenden:
Der resultierende DataFrame ähnelt diesem Layout:
Beispielcode:
df = pd.DataFrame([ (1, 1, 'term1'), (1, 2, 'term2'), (1, 1, 'term1'), (1, 1, 'term2'), (2, 2, 'term3'), (2, 3, 'term1'), (2, 2, 'term1') ], columns=['id', 'group', 'term']) result = df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0) print(result)
Ausgabe:
term1 term2 term3 id group 1 1 2 1 2 2 2 1 3 1 0
Leistung:
Bei großen Datensätzen können die Vorgänge „groupby“ und „size“ ausgeführt werden rechenintensiv sein. Der folgende Code stellt Zeitstatistiken zum Gruppieren und Zählen auf einem DataFrame mit 1.000.000 Zeilen bereit:
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000))) %timeit df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Das obige ist der detaillierte Inhalt vonWie kann ich Vorkommen von Begriffen in Pandas DataFrames effizient nach ID und Gruppe gruppieren und zählen, ohne Schleifen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!