Pandas Groupby

Gi Woon Lee·2024년 8월 31일
0

TIL

목록 보기
52/78

pandasgroupby 함수는 데이터프레임을 특정 기준으로 그룹화한 다음, 각 그룹에 대해 특정 연산을 적용할 때 사용됩니다. 아래에 몇 가지 간단한 예시를 들어보겠습니다.

예제 데이터셋

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)

이 데이터프레임은 두 개의 특성(CategoryValues, 그리고 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

1. 그룹별 합계 계산

각 카테고리별 Values의 합계를 계산하는 예시입니다.

# Category별로 그룹화하고, Values의 합계를 계산
grouped_sum = df.groupby('Category')['Values'].sum()
print(grouped_sum)
Category
A    45
B    95
Name: Values, dtype: int64

2. 그룹별 평균 계산

각 카테고리별 Values의 평균을 계산하는 예시입니다.

# Category별로 그룹화하고, Values의 평균을 계산
grouped_mean = df.groupby('Category')['Values'].mean()
print(grouped_mean)
Category
A    11.25
B    23.75
Name: Values, dtype: float64

3. 그룹별 여러 연산 수행

각 카테고리별로 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

4. 그룹별로 여러 열에 대해 각각 다른 연산 수행

각 카테고리별로 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

5. 그룹별 크기 계산

각 그룹의 크기(갯수)를 계산하는 예시입니다.

# Category별로 그룹화하고, 그룹별 크기를 계산
grouped_size = df.groupby('Category').size()
print(grouped_size)
Category
A    4
B    4
dtype: int64

요약

groupby는 데이터를 그룹화한 후, 그 그룹에 대해 합계, 평균, 최대값, 최소값, 크기 등을 계산하는 데 매우 유용합니다. 다양한 연산을 쉽게 수행할 수 있으며, 이를 통해 데이터의 통찰을 얻을 수 있습니다.

0개의 댓글