groupby()를 사용한 그룹화 - 데이터의 특정 열을 기준으로 그룹화
import pandas as pd
#예시 데이터프레임 생성
data = {
'이름' : ['철수','영희','민수','지수','철수','영희'],
'과목' : ['수학','수학','과학','과학','영어','영어'],
'점수' : [90,85,95,80,75,88]
}
df = pd.DataFrame(data)
#'이름'을 기준으로 그룹화
grouped = df.groupby('이름')
집계 함수 사용하기 - 그룹화한 데이터에 대해 다양한 집계 함수(mean, sum, count 등)사용
#각 학생의 평균 점수 계산
mean_scores = grouped['점수'].mean()
mean_scores
여러 집계 함수들 동시에 사용
#각 학생의 점수 합계와 평균 계산
agg_scores = grouped['점수'].agg(['sum','mean'])
agg_scores
여러 열을 기준으로 그룹화
#'이름'과 '과목'을 기준으로 그룹화하여 점수 합계 계산
grouped_multi = df.groupby(['이름', '과목'])['점수'].sum()
grouped_multi
피벗테이블
- 데이터를 요약하는 강력한 도구
- 엑셀의 피벗테이블과 유사
- 특정 기준에 따라 데이터를 재구조화 할 수 있음
#피벗테이블 생성: '이름'을 인덱스로, '과목'을 컬럼으로하여 점수의 평균을 계산
pivot = pd.pivot_table(df, index = '이름', columns = '과목', values = '점수', aggfunc = 'mean')
pivot
여러 집계 함수 사용하기
#점수의 합계와 평균을 계산하는 피벗테이블 생성
pivot_multi = pd.pivot_table(df, index = '이름', columns = '과목', values = '점수', aggfunc =['sum', 'mean'])
pivpt_multi
margins 옵션을 사용, 전체 합계 추계
margin = True 옵션을 사용하면, 각 행과 열의 합계가 추가된 피벗테이블 생성
#각 이름별, 과목별 총합을 포함한 피벗테이블 생성
pivot_with_totals = pd.pivot_table(df, index = '이름', columns = '과목', values = '점수', aggfunc = 'sum', margins = True)
pivot_with_totals
'Python to AI' 카테고리의 다른 글
Python - Matplotlib 한글폰트 커스텀컨피그 (2) | 2024.12.10 |
---|---|
Python - Pandas(데이터 전처리 : isna(), isnull() ) (3) | 2024.12.10 |
Python - Pandas(데이터 변형 : 정렬, 병합) (1) | 2024.12.09 |
Python - Pandas(feat.isin(), astype()) (0) | 2024.12.08 |
Python - Pandas(feat. titanic.csv) (0) | 2024.12.05 |