[파이썬] 데이터 그룹화와 집계

데이터 분석 작업 중에서 가장 중요한 단계 중 하나는 데이터를 그룹화하고 집계하는 것입니다. 이는 데이터의 통계적 특성을 살펴보고, 패턴을 발견하며, 인사이트를 도출하는 데 도움이 됩니다. Python은 그룹화와 집계 작업을 간단하게 수행할 수 있는 강력한 도구와 라이브러리들을 제공합니다. 이번 글에서는 데이터 그룹화와 집계를 수행하는 몇 가지 기술과 예제를 살펴보겠습니다.

그룹화하기

그룹화는 데이터를 특정 기준에 따라 분류하는 작업입니다. 예를 들어, 고객 데이터를 ‘성별’이나 ‘지역’ 등의 기준으로 그룹화할 수 있습니다. Python에서는 pandas 라이브러리의 groupby() 함수를 사용하여 이 작업을 수행할 수 있습니다. 다음은 pandas를 사용하여 고객 데이터를 ‘성별’로 그룹화하는 예제입니다.

import pandas as pd

# 고객 데이터
data = {
    '이름': ['홍길동', '김철수', '이영희', '박영식', '최민준'],
    '성별': ['남', '남', '여', '남', '여'],
    '나이': [30, 25, 35, 40, 27]
}

df = pd.DataFrame(data)

# '성별'로 그룹화하기
grouped = df.groupby('성별')

# 각 그룹별로 데이터 출력하기
for group, data in grouped:
    print(f"성별: {group}")
    print(data)
    print()

위의 예제에서는 고객 데이터를 pandasDataFrame으로 생성한 후, groupby() 함수를 사용하여 ‘성별’로 그룹화했습니다. 그룹화한 결과를 for 문을 통해 각 그룹별로 데이터를 출력하였습니다.

집계하기

그룹화된 데이터를 기반으로 통계적인 집계 작업을 수행할 수 있습니다. 이를 통해 각 그룹의 특성을 파악하고 비교할 수 있습니다. pandas는 그룹화된 데이터에 대한 다양한 집계 함수들을 제공합니다. 일반적으로 사용되는 집계 함수들은 아래와 같습니다.

다음은 ‘성별’로 그룹화된 고객 데이터의 나이를 평균으로 집계하는 예제입니다.

import pandas as pd

# 고객 데이터
data = {
    '이름': ['홍길동', '김철수', '이영희', '박영식', '최민준'],
    '성별': ['남', '남', '여', '남', '여'],
    '나이': [30, 25, 35, 40, 27]
}

df = pd.DataFrame(data)

# '성별'로 그룹화하기
grouped = df.groupby('성별')

# '나이'를 평균으로 집계하기
aggregated = grouped['나이'].mean()

print(aggregated)

위의 예제에서는 groupby() 함수를 사용하여 ‘성별’로 그룹화한 후, 그룹화된 데이터에 대해 mean() 함수를 호출하여 ‘나이’를 평균으로 집계했습니다. 결과를 출력하면 ‘남’ 그룹의 평균 나이와 ‘여’ 그룹의 평균 나이가 출력됩니다.

데이터 그룹화와 집계는 데이터 분석에서 중요한 단계이며 Python의 pandas 라이브러리는 이를 수행하기 위한 강력한 도구를 제공합니다. 이를 통해 데이터의 특성을 파악하고 통찰력 있는 인사이트를 얻을 수 있습니다.