🖥️ 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' 열 값의 합계를 계산합니다.
주요 기능
- 그룹별 집계 (Aggregation)
mean_df = grouped.mean() # 그룹별 평균 계산
- 그룹별로 다양한 집계 함수(
sum
,mean
,max
,min
등)를 적용할 수 있습니다. - 그룹별 변환 (Transformation)
def custom_transform(x): return x * 2 transformed_df = grouped.transform(custom_transform)
- 그룹별로 데이터를 변환할 수 있습니다.
- 그룹별 필터링 (Filtering)
filtered_df = grouped.filter(lambda x: x['Value'].mean() > 30)
- 특정 조건을 만족하는 그룹만 선택할 수 있습니다.
- 그룹별 적용 (Apply)
def custom_apply(x): return x['Value'].sum() applied_df = grouped.apply(custom_apply)
- 그룹별로 임의의 함수를 적용할 수 있습니다.
예제
다양한 예제를 통해 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
의 사용법을 쉽게 이해할 수 있습니다.
반응형