pandas
의 groupby
함수는 데이터프레임을 특정 기준으로 그룹화한 다음, 각 그룹에 대해 특정 연산을 적용할 때 사용됩니다. 아래에 몇 가지 간단한 예시를 들어보겠습니다.
import pandas as pd
# 예제 데이터프레임 생성
data = {
'Category': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
'Values': [10, 20, 10, 30, 15, 25, 10, 20],
'Score': [1, 2, 1, 2, 3, 2, 1, 3]
}
df = pd.DataFrame(data)
print(df)
이 데이터프레임은 두 개의 특성(Category
와 Values
, 그리고 Score
)으로 구성되어 있습니다.
Category Values Score
0 A 10 1
1 B 20 2
2 A 10 1
3 B 30 2
4 A 15 3
5 B 25 2
6 A 10 1
7 B 20 3
각 카테고리별 Values
의 합계를 계산하는 예시입니다.
# Category별로 그룹화하고, Values의 합계를 계산
grouped_sum = df.groupby('Category')['Values'].sum()
print(grouped_sum)
Category
A 45
B 95
Name: Values, dtype: int64
각 카테고리별 Values
의 평균을 계산하는 예시입니다.
# Category별로 그룹화하고, Values의 평균을 계산
grouped_mean = df.groupby('Category')['Values'].mean()
print(grouped_mean)
Category
A 11.25
B 23.75
Name: Values, dtype: float64
각 카테고리별로 Values
의 합계와 Score
의 평균을 동시에 계산하는 예시입니다.
# Category별로 그룹화하고, Values의 합계와 Score의 평균을 계산
grouped_multiple = df.groupby('Category').agg({
'Values': 'sum',
'Score': 'mean'
})
print(grouped_multiple)
Values Score
Category
A 45 1.5
B 95 2.25
각 카테고리별로 Values
에 대해서는 합계를, Score
에 대해서는 최대값을 계산하는 예시입니다.
# Category별로 그룹화하고, Values의 합계와 Score의 최대값을 계산
grouped_diff_agg = df.groupby('Category').agg({
'Values': 'sum',
'Score': 'max'
})
print(grouped_diff_agg)
Values Score
Category
A 45 3
B 95 3
각 그룹의 크기(갯수)를 계산하는 예시입니다.
# Category별로 그룹화하고, 그룹별 크기를 계산
grouped_size = df.groupby('Category').size()
print(grouped_size)
Category
A 4
B 4
dtype: int64
groupby
는 데이터를 그룹화한 후, 그 그룹에 대해 합계, 평균, 최대값, 최소값, 크기 등을 계산하는 데 매우 유용합니다. 다양한 연산을 쉽게 수행할 수 있으며, 이를 통해 데이터의 통찰을 얻을 수 있습니다.