Gruppieren von Objekten in Arrays mithilfe der GroupBy-Methode
Pythons leistungsstarke Groupby-Methode ermöglicht eine effiziente Gruppierung von Objekten basierend auf ausgewählten Attributen. Wenn Sie solche Gruppierungsvorgänge durchführen müssen, bietet Groupby eine praktische Lösung.
Betrachten Sie beispielsweise die folgende Anordnung von Objekten:
[ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, { Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" }, { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" }, { Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" }, { Phase: "Phase 2", Step: "Step 2", Task: "Task 1", Value: "35" }, { Phase: "Phase 2", Step: "Step 2", Task: "Task 2", Value: "40" } ]
Um die Objekte nach Phase zu gruppieren und die Summe zu berechnen of Value verwenden wir:
from itertools import groupby def sum_value(objects): return sum(int(obj["Value"]) for obj in objects) objects.sort(key=lambda obj: obj["Phase"]) grouped_by_phase = groupby(objects, key=lambda obj: obj["Phase"]) result = [{ "Phase": phase, "Value": sum_value(objects) } for phase, objects in grouped_by_phase] print(result)
Dies ergibt die gewünschte Ausgabe:
[{"Phase": "Phase 1", "Value": 50}, {"Phase": "Phase 2", "Value": 130}]
Alternativ zum Gruppieren nach Sowohl Phase als auch Schritt können wir mehrere Ebenen von Groupby verwenden:
grouped_by_phase_and_step = groupby(objects, key=lambda obj: (obj["Phase"], obj["Step"])) result = [{ "Phase": phase, "Step": step, "Value": sum_value(objects) } for (phase, step), objects in grouped_by_phase_and_step] print(result)
Dies gibt Folgendes zurück:
[{"Phase": "Phase 1", "Step": "Step 1", "Value": 15}, {"Phase": "Phase 1", "Step": "Step 2", "Value": 35}, {"Phase": "Phase 2", "Step": "Step 1", "Value": 55}, {"Phase": "Phase 2", "Step": "Step 2", "Value": 75}]
Mit der vielseitigen Groupby-Methode von Python können Sie Daten einfach und effizient gruppieren und aggregieren Arrays von Objekten, die Ihren verschiedenen Gruppierungsanforderungen entsprechen.
Das obige ist der detaillierte Inhalt vonWie kann die „groupby'-Methode von Python Daten aus Arrays von Objekten effizient gruppieren und aggregieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!