이터레이터를 활용한 데이터 요약 및 비교

데이터의 요약과 비교는 데이터 분석 및 통계에서 중요한 단계입니다. 이터레이터를 사용하여 데이터를 순회하고 요약 통계를 계산하는 방법을 살펴보겠습니다.

이터레이터란?

이터레이터는 컬렉션 내의 각 항목에 순차적으로 접근할 수 있는 객체입니다. 파이썬에서는 iter() 함수를 사용하여 이터레이터 객체를 생성하고, next() 함수를 호출하여 다음 항목에 접근할 수 있습니다.

데이터 요약하기

데이터를 요약하는 것은 해당 데이터의 특성을 파악하는 중요한 과정입니다. 이터레이터를 사용하여 데이터를 읽고, 이를 활용하여 다양한 통계량을 계산할 수 있습니다. 예를 들어, 숫자 리스트에서 평균, 최댓값, 최솟값을 계산하는 함수를 작성해보겠습니다.

numbers = [1, 2, 3, 4, 5]

def summarize_data(data):
    count = 0
    total = 0
    min_value = float('inf')
    max_value = float('-inf')

    for num in data:
        count += 1
        total += num
        min_value = min(min_value, num)
        max_value = max(max_value, num)

    average = total / count
    return {
        "count": count,
        "sum": total,
        "min": min_value,
        "max": max_value,
        "average": average
    }

summary = summarize_data(numbers)
print(summary)

위 코드에서 summarize_data() 함수는 숫자 리스트를 인자로 받아서 각각의 통계량(count, sum, min, max, average)을 계산하여 딕셔너리 형태로 반환합니다. 출력 결과는 다음과 같습니다.

{
    'count': 5,
    'sum': 15,
    'min': 1,
    'max': 5,
    'average': 3.0
}

데이터 비교하기

데이터를 비교하는 것은 다양한 목적에 활용될 수 있습니다. 예를 들어, 두 개의 숫자 리스트를 비교하여 공통 원소와 불일치 원소를 찾아내는 함수를 작성해보겠습니다.

list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]

def compare_data(list1, list2):
    common_elements = []
    mismatched_elements = []

    set1 = set(list1)
    set2 = set(list2)

    for element in set1.intersection(set2):
        common_elements.append(element)

    for element in set1.symmetric_difference(set2):
        mismatched_elements.append(element)

    return {
        "common_elements": common_elements,
        "mismatched_elements": mismatched_elements
    }

comparison_result = compare_data(list1, list2)
print(comparison_result)

위 코드에서 compare_data() 함수는 두 개의 숫자 리스트를 인자로 받아서 공통 원소와 불일치 원소를 찾아 딕셔너리 형태로 반환합니다. 출력 결과는 다음과 같습니다.

{
    'common_elements': [3, 4, 5],
    'mismatched_elements': [1, 2, 6, 7]
}

이와 같이 이터레이터를 활용하여 데이터를 요약하고 비교할 수 있습니다. 이터레이터를 사용하면 대용량의 데이터도 효율적으로 처리할 수 있으며, 다양한 분석 작업에 유용합니다.

#python #이터레이터