Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet man die durchschnittliche Zeit pro Organisation innerhalb jedes Clusters in einem Pandas DataFrame?

Wie berechnet man die durchschnittliche Zeit pro Organisation innerhalb jedes Clusters in einem Pandas DataFrame?

Susan Sarandon
Susan SarandonOriginal
2024-11-14 20:49:02392Durchsuche

How to Calculate the Average Time per Organization Within Each Cluster in a Pandas DataFrame?

Durchführen gruppierter Aggregationen und Durchschnittsberechnungen

Betrachten Sie den folgenden DataFrame mit Daten zu Cluster, Organisation und Zeit:

  cluster org  time
0       a    8
1       a    6
2       h   34
3       c   23
4       d   74
5       w    6

Das Ziel besteht darin, die durchschnittliche Zeit pro Organisation innerhalb jedes Clusters zu berechnen. Das erwartete Ergebnis sollte wie folgt aussehen:

cluster  mean(time)
1        15 #=((8 + 6) / 2 + 23) / 2
2        54 #=(74 + 34) / 2
3        6

Lösung mit Double GroupBy- und Mittelwertberechnungen:

Um dies zu erreichen, nutzen Sie die Leistung der Groupby-Funktion von Pandas:

  1. Anfängliche Gruppierung nach: Gruppieren Sie die Daten sowohl nach „Cluster“ als auch 'org' mit groupby(['cluster', 'org']).
  2. Zwischenaggregat: Berechnen Sie den Zeitmittelwert innerhalb jeder Gruppe mit mean().
  3. Secondary GroupBy: Gruppieren Sie den resultierenden DataFrame weiter nach „Cluster“. groupby('cluster').
  4. Final Aggregate: Berechnen Sie den Mittelwert der Zeit für jeden Cluster mit „mean()“.
cluster_org_time = df.groupby(['cluster', 'org'], as_index=False).mean()
result = cluster_org_time.groupby('cluster')['time'].mean()

Alternative Lösung für gruppierte Gruppendurchschnitte:

Nur ​​für den Durchschnitt von Clustergruppen gruppieren Sie einfach nach ['cluster'] und berechnen Sie den Mittelwert mit „mean()“.

cluster_mean_time = df.groupby(['cluster']).mean()

Zusätzliche Option für GroupBy mit org und Mittelwertberechnung:

Alternativ können Sie gruppieren durch ['cluster', 'org'] und berechnen Sie direkt den Mittelwert:

cluster_org_mean_time = df.groupby(['cluster', 'org']).mean()

Das obige ist der detaillierte Inhalt vonWie berechnet man die durchschnittliche Zeit pro Organisation innerhalb jedes Clusters in einem Pandas DataFrame?. 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