🖥️ IT, 컴퓨터/🐍 Python

[Python] 판다스 groupby 함수

김 홍시 2024. 6. 11. 11:16
반응형

groupby는 Pandas 라이브러리에서 제공하는 강력한 함수로, 데이터를 특정 기준에 따라 그룹으로 나누고 그룹별로 연산을 수행할 수 있게 해줍니다. 다음은 groupby 함수의 기본적인 사용법과 예제입니다.

기본 사용법

groupby를 사용하려면 Pandas 데이터프레임을 특정 열을 기준으로 그룹화하고, 그룹화된 각 그룹에 대해 연산을 수행할 수 있습니다.

import pandas as pd

# 예제 데이터프레임 생성
data = {
    'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40, 50, 60]
}

df = pd.DataFrame(data)

# 'Category' 열을 기준으로 그룹화
grouped = df.groupby('Category')

# 그룹별 합계 계산
sum_df = grouped.sum()

print(sum_df)

위의 코드에서는 'Category' 열을 기준으로 데이터프레임을 그룹화한 뒤, 각 그룹의 'Value' 열 값의 합계를 계산합니다.

주요 기능

  1. 그룹별 집계 (Aggregation)
     mean_df = grouped.mean()  # 그룹별 평균 계산
  2. 그룹별로 다양한 집계 함수(sum, mean, max, min 등)를 적용할 수 있습니다.
  3. 그룹별 변환 (Transformation)
     def custom_transform(x):
         return x * 2
    
     transformed_df = grouped.transform(custom_transform)
  4. 그룹별로 데이터를 변환할 수 있습니다.
  5. 그룹별 필터링 (Filtering)
     filtered_df = grouped.filter(lambda x: x['Value'].mean() > 30)
  6. 특정 조건을 만족하는 그룹만 선택할 수 있습니다.
  7. 그룹별 적용 (Apply)
     def custom_apply(x):
         return x['Value'].sum()
    
     applied_df = grouped.apply(custom_apply)
  8. 그룹별로 임의의 함수를 적용할 수 있습니다.

예제

다양한 예제를 통해 groupby의 사용법을 살펴보겠습니다.

# 예제 데이터프레임
data = {
    'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
    'Value': [10, 20, 30, 40, 50, 60],
    'Score': [100, 200, 150, 300, 250, 400]
}

df = pd.DataFrame(data)

# 그룹화
grouped = df.groupby('Category')

# 1. 그룹별 합계 계산
sum_df = grouped.sum()
print("그룹별 합계:\n", sum_df)

# 2. 그룹별 평균 계산
mean_df = grouped.mean()
print("그룹별 평균:\n", mean_df)

# 3. 그룹별 사용자 정의 함수 적용 (변환)
def scale(x):
    return x / x.max()

scaled_df = grouped.transform(scale)
print("그룹별 변환 (스케일링):\n", scaled_df)

# 4. 그룹별 필터링 (평균 값이 35보다 큰 그룹 선택)
filtered_df = grouped.filter(lambda x: x['Value'].mean() > 35)
print("그룹별 필터링 (평균 값 > 35):\n", filtered_df)

# 5. 그룹별 사용자 정의 함수 적용 (적용)
def custom_apply(x):
    x['Value'] = x['Value'] * 2
    return x

applied_df = grouped.apply(custom_apply)
print("그룹별 사용자 정의 함수 적용:\n", applied_df)

이 예제에서는 다양한 groupby 연산을 통해 데이터를 그룹화하고, 그룹별로 다양한 연산을 수행하는 방법을 보여줍니다. 각 연산의 결과를 출력하여 groupby의 사용법을 쉽게 이해할 수 있습니다.

반응형