데이터의 요약과 비교는 데이터 분석 및 통계에서 중요한 단계입니다. 이터레이터를 사용하여 데이터를 순회하고 요약 통계를 계산하는 방법을 살펴보겠습니다.
이터레이터란?
이터레이터는 컬렉션 내의 각 항목에 순차적으로 접근할 수 있는 객체입니다. 파이썬에서는 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 #이터레이터