groupby 소개
groupby
는 데이터를 특정 기준으로 그룹화하고, 각 그룹에 대해 다양한 연산(합계, 평균, 최댓값, 최솟값 등)을 적용할 수 있는 매우 강력한 메서드입니다.
사용법1 - 기본
import pandas as pd
# 예제 데이터프레임 생성
data = {
'Category': ['A', 'B', 'A', 'B', 'C', 'C', 'A'],
'Value': [10, 20, 15, 10, 30, 40, 25]
}
df = pd.DataFrame(data)
# Category 열로 그룹화하고 Value의 합계 계산
grouped = df.groupby('Category')['Value'].sum()
print(grouped)
출력 결과
Category
A 50
B 30
C 70
Name: Value, dtype: int64
사용법 2 - 여러 열로 그룹화
# Category와 Value가 같은 그룹으로 그룹화
data = {
'Category': ['A', 'A', 'B', 'B', 'C', 'C', 'A'],
'SubCategory': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X'],
'Value': [10, 20, 15, 10, 30, 40, 25]
}
df = pd.DataFrame(data)
# Category와 SubCategory로 그룹화
grouped = df.groupby(['Category', 'SubCategory'])['Value'].sum()
print(grouped)
출력 결과
Category SubCategory
A X 35
Y 20
B X 15
Y 10
C X 30
Y 40
Name: Value, dtype: int64
사용법 3 - 그룹화 결과를 데이터프레임으로 변환
# 그룹화 결과를 데이터프레임으로 변환
grouped_df = df.groupby(['Category', 'SubCategory'], as_index=False)['Value'].sum()
print(grouped_df)
출력 결과
Category SubCategory Value
0 A X 35
1 A Y 20
2 B X 15
3 B Y 10
4 C X 30
5 C Y 40
사용법 4 - 조건부 필터링 후 그룹화
# Value가 20 이상인 값만 그룹화
filtered_grouped = df[df['Value'] >= 20].groupby('Category')['Value'].sum()
print(filtered_grouped)
출력 결과
Category
A 45
C 70
Name: Value, dtype: int64