빅데이터 분석기사/작업 유형 1 (pd)
그룹별 통계값 구하기
유방울
2023. 5. 12. 17:19
그룹별 맥주, 와인 소비량
[] -> 시리즈
[[]] -> 데이터프레임, 여러개 가능
# [2-55] 대륙별 맥주 소비량 평균은?
# ['맥주'] 했을 때 시리즈
# [['맥주']] 목록을 줄 때 데이터프레임
# [['맥주','와인']] 여러개도 가능
df.groupby('대륙')[['맥주','와인']].mean()
대륙별 맥주량 평균 temp 저장
-> 맥주 평균보다 큰 데이터프레임 추출
# [2-56] 전세계 맥주 소비량 평균보다 많은 맥주를 소비하는 대륙은?
temp = df.groupby('대륙')[['맥주']].mean()
temp[temp['맥주'] > df['맥주'].mean()]
agg([통계 메서드]) 여러개 통계 함수 사용시
# [2-57] 대륙별 맥주와 와인 소비량의 평균, 중앙값, 최대값은?
# 여러개 통개함수 사용시 agg() 애그리게이션
df.groupby('대륙')[['맥주','와인']].agg(['mean','median','max'])
- DataFrame.pivot_table(index=행방향컬럼, columns=열방향컬럼, values=집계대상컬럼, aggfunc=구할 통계값)
피벗테이블
# [2-58] pivot_table을 사용하여 대륙별(index), '맥주'와 '와인'의 mean, median, max 값을 구합니다.
# index, columns 범주형 -> 몇가지로 나뉨
# values 연속형 -> 여러가지로
# 결과 참조
df.pivot_table(index='대륙',values=['맥주','와인'], aggfunc=['mean','median','max'])
mean median max
맥주 와인 맥주 와인 맥주 와인
대륙
AF 61.471698 16.264151 32.0 2.0 376 233
AS 37.045455 9.068182 17.5 1.0 247 123
EU 193.777778 142.222222 219.0 128.0 361 370
groupby 로도 피벗테이블과 유사한 결과 도출 가능
# [2-60] groupby를 사용하여 대륙별, '맥주'와 '와인'의 mean, median, max 값을 구합니다.
# 피벗테이블과 비슷함
# 하지만 통계 메서드와 그룹핑한 것이 위아래가 다름
# 미묘한 차이
df.groupby('대륙')[['맥주','와인']].agg(['mean','median','max'])
맥주 와인
mean median max mean median max
대륙
AF 61.471698 32.0 376 16.264151 2.0 233
AS 37.045455 17.5 247 9.068182 1.0 123
EU 193.777778 219.0 361 142.222222 128.0 370