반응형
6-6 집단별로 요약하기
'집단별 평균'이나 '집단별 빈도'처럼 각 집단을 요약한 값을 구할 때는 df.groupby(), df.agg()를 사용
집단별로 요약하기
전체 요약 통계량 구하기
exam.agg(mean_math = ('math', 'mean'))
집단별 요약 통계량 구하기
exam.groupby('nclass').agg(mean_math = ('math', 'mean'))
※ 변수를 인덱스로 바꾸지 않기
exam.groupby('nclass', as_index = False).agg(mean_math = ('math', 'mean'))
agg()에 자주 사용하는 요약 통계량 함수
※ 모든 변수의 요약 통계량 한 번에 구하기
exam.groupby('nclass').mean()
mpg.query('manufacturer == "audi"').groupby(['drv']).agg(n = ('drv', 'count'))
mpg.query('manufacturer == "chevrolet"').groupby(['drv']).agg(n = ('drv', 'count'))
※ value_counts()로 집단별 빈도 간단하게 구하기
mpg.groupby('drv').agg(n = ('drv', 'count'))
mpg['drv'].value_counts()
"""
f 106
4 103
r 25
Name: drv, dtype: int64
"""
# drv 빈도 구하기
# 데이터 프레임으로 바꾸기, 변수명 n으로 바꾸기
# axis 이름에 drv 지정
# n이 100을 초과한 경우 추출
mpg['drv'].value_counts().to_frame('n').rename_axis('drv').query('n > 100')
pandas 함수 조합하기
제조 회사별로 'suv' 자동차의 도시 및 고속도로 합산 연비 평균을 구해 내림차순으로 정렬하고, 1~5위까지 출력하기
mpg.query('category == "suv"')\
.assign(total = (mpg['hwy'] + mpg['cty']) / 2)\
.groupby('manufacturer')\
.agg(mean_tot = ('total', 'mean'))\
.sort_values('mean_tot', ascending = False)\
.head(5)
혼자서 해보기 - mpg 데이터를 이용해 분석 문제를 해결해 보세요
Q1 mpg 데이터의 category는 자동차를 특징에 따라 'suv', 'compact' 등 일곱 종류로 분류한 변수입니다. 어떤 차종의 도시 연비가 높은지 비교해 보려고 합니다. category별 cty 평균을 구해보세요
mpg.groupby('category').agg(cty_mean = ('cty', 'mean'))
Q2 앞 문제의 출력 결과는 category 값 알파벳순으로 정렬되어 있습니다. 어떤 차종의 도시 연비가 높은지 쉽게 알아볼 수 있도록 cty 평균이 높은 순으로 정렬해 출력하세요.
mpg.groupby('category').agg(cty_mean = ('cty', 'mean')).sort_values('cty_mean', ascending = False)
Q3 어떤 회사 자동차의 hwy(고속도로 연비)가 가장 높은지 알아보려고 합니다. hwy 평균이 가장 높은 회사 세 곳을 출력하세요.
mpg.groupby('manufacturer').agg(hwy_mean = ('hwy', 'mean')).sort_values('hwy_mean', ascending = False).head(3)
Q4 어떤 회사에서 'compact' 차종을 가장 많이 생산하는지 알아보려고 합니다. 회사별 'compact' 차종 수를 내림차순으로 정렬해 출력하세요
mpg.query('category == "compact"').groupby('manufacturer').agg(n = ('manufacturer', 'count')).sort_values('manufacturer', ascending = False)
※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.
반응형
'데이터 분석 학습' 카테고리의 다른 글
6장 자유자재로 데이터 가공하기 (7) (0) | 2023.04.13 |
---|---|
6장 자유자재로 데이터 가공하기 (6) (0) | 2023.04.12 |
6장 자유자재로 데이터 가공하기 (4) (0) | 2023.04.10 |
6장 자유자재로 데이터 가공하기 (3) (0) | 2023.04.09 |
6장 자유자재로 데이터 가공하기 (2) (0) | 2023.04.08 |