[Pandas 강좌 – 7] Pandas(판다스) 데이터 그룹화하기 (Grouphy 함수 이해와 활용)

1. Groupby 함수 이해

 

Pandas의 groupby 함수는 데이터를 원하는 기준에 따라 그룹으로 분류하고, 이렇게 분류된 그룹에 대해 다양한 연산을 수행할 수 있습니다. 이러한 방식은 SQL의 GROUP BY 구문과 유사합니다. 아래 코드에서 groupby 함수는 "Animal" 열을 기준으로 데이터를 그룹화하고, 각 그룹의 내용을 출력합니다.

 

 

import pandas as pd

# DataFrame 생성
df = pd.DataFrame({
   'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'],
   'Max Speed': [380., 370., 24., 26.],
   'Weight': [1.5, 1.7, 0.3, 0.2]
})

# 그룹화
grouped = df.groupby("Animal")

# 그룹화 결과 확인
for name, group in grouped:
    print(name)
    print(group)
    print("\n")

# Falcon
#    Animal  Max Speed  Weight
# 0  Falcon      380.0     1.5
# 1  Falcon      370.0     1.7
# 
# 
# Parrot
#    Animal  Max Speed  Weight
# 2  Parrot       24.0     0.3
# 3  Parrot       26.0     0.2

 

 

groupby 함수는 여러 매개변수를 가지고 있습니다.

 

  • by : 이 매개변수에는 그룹화를 하고자 하는 열 또는 열의 목록을 전달합니다. 특정 열 또는 열의 조합에 따라 그룹화를 수행합니다.
  • axis : 이 매개변수는 그룹화를 수행하려는 축을 지정합니다. 기본값은 0입니다.
  • level : 이 매개변수는 멀티 인덱스(MultiIndex)에서 레벨에 따라 그룹화를 수행합니다.
  • as_index : 이 매개변수는 True일 때 그룹 레이블을 인덱스로 사용합니다. 기본값은 True입니다. False로 설정하면, 그룹화 열이 출력 결과에 열로 유지되며 인덱스로 사용되지 않습니다.
  • sort : 이 매개변수는 그룹 키에 따라 그룹을 정렬할지 여부를 결정합니다. 기본값은 True입니다. False로 설정하면, 그룹화는 키의 발견 순서대로 수행됩니다.
  • group_keys : 이 매개변수는 각 그룹의 키를 결과에 추가할지 여부를 결정합니다. 기본값은 True입니다.
  • squeeze : 이 매개변수는 가능한 경우 반환된 그룹을 Series로 압축할지 여부를 결정합니다. 기본값은 False입니다.
  • observed : 이 매개변수는 카테고리(Categorical) 형태의 열이 있는 데이터를 그룹화할 때 사용되며, True로 설정하면 관찰된 카테고리만을 그룹화합니다.

 


2. Groupby를 이용한 연산 (Sum, Mean 등)

 

그룹화된 데이터에는 다양한 통계 함수를 적용할 수 있습니다. 아래 코드에서는 각각 그룹화된 데이터에 대해 평균(mean), 합계(sum), 최대값(max) 연산을 적용합니다.

 

 

# 그룹화된 데이터에 mean 함수 적용
print(grouped.mean())

#         Max Speed  Weight
# Animal
# Falcon      375.0    1.60
# Parrot       25.0    0.25

# 그룹화된 데이터에 sum 함수 적용
print(grouped.sum())

#         Max Speed  Weight
# Animal
# Falcon      750.0     3.2
# Parrot       50.0     0.5

# 그룹화된 데이터에 max 함수 적용
print(grouped.max())


#         Max Speed  Weight
# Animal
# Falcon      380.0     1.7
# Parrot       26.0     0.3