>웹 프론트엔드 >JS 튜토리얼 >Python의 'groupby' 메서드는 어떻게 객체 배열의 데이터를 효율적으로 그룹화하고 집계할 수 있나요?

Python의 'groupby' 메서드는 어떻게 객체 배열의 데이터를 효율적으로 그룹화하고 집계할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-22 20:55:11920검색

How can Python's `groupby` method efficiently group and aggregate data from arrays of objects?

GroupBy 메서드를 사용하여 배열의 개체 그룹화

Python의 강력한 groupby 메서드를 사용하면 선택한 속성을 기반으로 개체를 효율적으로 그룹화할 수 있습니다. 이러한 그룹화 작업을 수행해야 하는 경우 groupby가 편리한 솔루션을 제공합니다.

예를 들어 다음 개체 배열을 고려하세요.

[ 
    { 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" }
]

단계별로 개체를 그룹화하고 합계를 계산하려면 우리는 다음과 같은 가치를 사용합니다.

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)

이렇게 하면 원하는 결과를 얻을 수 있습니다. 출력:

[{"Phase": "Phase 1", "Value": 50}, {"Phase": "Phase 2", "Value": 130}]

또는 단계와 단계를 모두 기준으로 그룹화하려면 여러 수준의 그룹화를 사용할 수 있습니다.

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)

이 결과는 다음과 같습니다.

[{"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}]

Python의 다재다능한 그룹별 방법을 사용하면 객체 배열의 데이터를 쉽고 효율적으로 그룹화하고 집계하여 다양한 그룹화를 충족할 수 있습니다. 요구 사항.

위 내용은 Python의 'groupby' 메서드는 어떻게 객체 배열의 데이터를 효율적으로 그룹화하고 집계할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.