CodeGym /자바 코스 /Python SELF KO /데이터 그룹화 및 합계와 평균값 계산

데이터 그룹화 및 합계와 평균값 계산

Python SELF KO
레벨 28 , 레슨 0
사용 가능

1. 데이터 그룹화 소개

데이터 그룹화의 원리

현실 생활에서는 종종 물체를 어떤 기준에 따라 분류하곤 해. 예를 들면, 책은 책끼리, 채소는 채소끼리, 사람은 사람끼리 (알겠지?). 프로그래밍에서도 이와 비슷하게 작동해. 데이터 그룹화는 대량의 데이터를 더 작고 관리하기 쉬운 부분으로 나누고 이를 분석할 수 있게 해주는 도구야.

pandas에서는 groupby라는 메서드를 사용해서 데이터를 그룹으로 나누고 각각의 그룹에 대해 다양한 작업을 수행할 수 있어. 예를 들어, 매장의 부서별로 판매를 그룹화하고 각 부서의 총 수익을 계산할 수 있지.

다음은 예시야:

Python

import pandas as pd

# 판매 데이터로 DataFrame 생성
data = {'부서': ['식품', '가전', '식품', '책', '가전'],
        '수익': [100, 200, 150, 50, 300]}

df = pd.DataFrame(data)

# 부서별로 데이터를 그룹화하고 총 수익 계산
그룹 = df.groupby('부서')['수익'].sum()
print(그룹)

그룹화 활용 사례

그룹화는 서로 다른 카테고리 간 데이터를 비교해야 할 때 특히 유용해. 예를 들어, HR에서 회사의 각 부서별 평균 급여를 알고 싶을 때, 또는 마케터로서 각 상품이 어떤 달에 가장 많이 판매되었는지 궁금할 때 말이야. pandas의 그룹화 기능을 사용하면 이런 작업들이 훨씬 간단해져.

2. 집계 함수 계산

집계 함수 소개

집계 함수는 데이터 그룹에 적용되어 하나의 값을 반환하는 특별한 함수야. 가장 일반적인 예로는 sum(합계), mean(평균값), 그리고 count(항목 수) 같은 함수가 있어. 이 함수들은 방대한 정보를 더 간단하고 이해하기 쉬운 메트릭으로 축소할 수 있게 해줘.

집계 함수 활용

앞의 예시에서 합계를 계산하는 방법을 봤지. 이제 각 부서의 평균값과 판매 수를 어떻게 계산할 수 있는지 보자.

Python

# 부서별 평균 수익 계산
평균 = df.groupby('부서')['수익'].mean()
print(평균)

# 각 부서별 판매 수 계산
수량 = df.groupby('부서')['수익'].count()
print(수량)

집계 계산 예제

예를 들어, 사용자 웹사이트 방문 데이터가 있다고 가정해 보자. 어느 요일에 평균적으로 가장 많은 방문자 수를 기록했는지 알고 싶을 때 mean 함수를 사용하는 전형적인 문제야.

Python

data = {'요일': ['월', '화', '수', '목', '금', '수', '화'],
        '방문자': [120, 150, 170, 160, 180, 300, 220]}

df = pd.DataFrame(data)

# 요일별 평균 방문자 수 계산
평균_방문자 = df.groupby('요일')['방문자'].mean()
print(평균_방문자)

3. 실습

데이터 그룹화 및 집계 계산 과제

판매 데이터 배열이 있다고 가정해 보자. 과제: 카테고리별로 데이터를 그룹화하고 총 판매액, 평균 주문 가격 및 각 카테고리별 주문 건수를 계산하라. 이를 통해 어떤 상품 카테고리가 가장 큰 수익을 내는지, 그리고 “황금 광맥”이 숨어 있는 곳이 어디인지 이해할 수 있을 거야.

Python

data = {
    '카테고리': ['전자제품', '의류', '전자제품', '책', '책', '의류'],
    '주문_금액': [250, 100, 150, 200, 500, 300]
}

df = pd.DataFrame(data)

# 카테고리별 총 판매 계산
합계 = df.groupby('카테고리')['주문_금액'].sum()
print(합계)

# 카테고리별 평균 주문 금액 계산
평균_금액 = df.groupby('카테고리')['주문_금액'].mean()
print(평균_금액)

# 카테고리별 주문 건수 계산
주문_건수 = df.groupby('카테고리')['주문_금액'].count()
print(주문_건수)

그룹화 결과 논의와 데이터 분석

데이터 그룹화 및 집계 계산 작업을 완료한 후에는 결과를 분석하는 것이 매우 유익해. 예를 들어, "책" 카테고리는 작지만 큰 주문 덕분에 가장 높은 총액을 보유하고 있다는 것을 알 수 있어. 또는 "의류"는 가장 많은 주문 건수를 가지고 있지만 평균 주문 금액은 "전자제품"보다 낮을 수 있지.

이런 분석은 비즈니스 결정을 내리는 데 도움이 되지. 예를 들어, 주문 건수가 많은 카테고리에서 평균 주문 크기를 늘리기 위해 집중할 수 있어.

4. 실수와 주의사항

그룹화를 할 때 가장 흔한 실수 중 하나는 집계 함수를 사용할 때 괄호를 잊는 거야. 예를 들어, df.groupby('카테고리').sum() 대신 df.groupby('카테고리')['주문_금액'].sum()처럼 정확히 작성해야 해. 또한 데이터 누락 문제도 발생할 수 있어. Pandas에는 누락된 데이터를 처리하는 fillna() 같은 편리한 메소드가 있어. 계산 왜곡을 피하려면 이 메서드를 사용해서 누락 데이터를 다른 값으로 대체할 수 있어.

이외에도 데이터 타입이 올바른지 확인해야 해. 때때로 숫자 데이터가 문자열로 읽혀질 수 있는데, 이런 데이터를 집계하려고 하면 오류가 발생할 수 있어.

pandas와 그룹화 메서드에 대해 더 깊이 배우고 싶으면 pandas 공식 문서 를 참고해서 더 자세한 예제와 내용을 알아보는 것도 좋아.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION