[파이썬] pandas에서 그룹화 (groupby)

판다스(pandas)는 파이썬에서 데이터를 다루고 분석하는 데에 매우 유용한 라이브러리입니다. 그룹화(groupby)는 이러한 판다스의 핵심 기능 중 하나로, 데이터를 그룹으로 묶어서 통계 또는 집계 동작을 수행하는 데 사용됩니다. 이번 글에서는 판다스에서 그룹화를 어떻게 사용하는지 알아보고자 합니다.

그룹화를 위해 판다스에서는 groupby 메서드를 사용합니다. 이 메서드는 데이터프레임(DataFrame) 객체에 적용되며, 그룹화할 기준이 되는 열 이름을 인자로 전달합니다. 그룹화된 결과는 그룹을 식별하는 기준에 따라 분류되어 반환됩니다.

데이터 준비하기

먼저, 판다스를 임포트하고 그룹화할 데이터를 준비해봅시다. 아래와 같이 판다스 데이터프레임을 생성하고, ‘Category’(카테고리)와 ‘Value’(값) 열을 갖도록 합니다.

import pandas as pd

data = {
    'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [1, 2, 3, 4, 5, 6]
}

df = pd.DataFrame(data)

그룹화 수행하기

이제 groupby를 사용하여 데이터프레임을 그룹화해봅시다. 아래 코드는 ‘Category’ 열을 기준으로 그룹화를 수행하는 예시입니다.

grouped = df.groupby('Category')

groupby 메서드는 그룹화된 데이터프레임 객체를 반환합니다. 이 객체를 사용하여 그룹화된 데이터에 대한 통계 또는 집계 동작을 수행할 수 있습니다.

그룹화된 데이터 다루기

그룹화된 데이터프레임 객체는 다양한 메서드를 제공하여 그룹 단위로 통계 또는 집계를 계산할 수 있습니다. 예를 들어, mean 메서드를 사용하여 그룹 별 평균 값을 계산해봅시다.

mean_values = grouped.mean()

위의 코드는 ‘Value’ 열의 평균값을 그룹 별로 계산한 결과를 반환합니다.

그룹화된 데이터 반복하기

그룹화된 데이터프레임 객체는 반복(iteration)을 통해 그룹별로 데이터에 접근할 수 있습니다. 예를 들어, 아래와 같이 그룹 별로 데이터를 출력해봅시다.

for group_name, group_data in grouped:
    print(f"Group: {group_name}")
    print(group_data)
    print()  # 빈 줄 출력

위의 코드는 ‘Category’ 열의 값에 따라 그룹화된 데이터를 그룹별로 반복하며 출력합니다.

결론

판다스의 groupby 메서드를 사용하면 데이터를 그룹 단위로 묶어서 통계 또는 집계 동작을 수행할 수 있습니다. 그룹화된 데이터프레임 객체는 다양한 메서드를 활용하여 그룹별로 통계 값을 계산하거나 반복적인 작업을 수행할 수 있습니다. 이를 통해 데이터 분석 작업을 편리하게 수행할 수 있습니다.

더 자세한 내용은 판다스 공식 문서를 참고하시기 바랍니다.