본문 바로가기
파이썬/데이터 다듬기

[240913] 데이터다듬기#4 - 판다스 데이터프레임 집계

by 황오독 2024. 9. 13.

집계된 데이터에 대한 분석 방법을 배웠다.
그래프를 그려 시각화하는 것도 배웠는데 드디어 뭔가 공부했던 것들이 눈 앞에 실현되는 기분이라 뿌듯하였다.
 
들어가기 앞서 연속값, 범주값의 용어에 대한 설명을 들었다.
집계기준이 될 범주값과, 집계 대상 열이 되는 연속값 (합,평균등 집계)은데
예를 들어 OOO별 OOO값 처럼 OOO별이 범주값, OOO값이 연속값이다.
 
1. 데이터 집계

'day'별 'tip' 의 합을 알고 싶으면
tip.groupby(by='day', as_index=False)[['tip]].sum()

tip.groupby(by='day', as_index=False)
as_index=True가 디폴트 값이며,
as_index=True 'day'가 인덱스값이 되어 열이 1개가 됨 ==> 시리즈로 나타남.
as_index=False 'day'가 그대로 열로 올라가 열이 2개가 됨 ==> 데이터프레임으로 나타남.
(그냥 쓸 때 as_index=False로 쓰는 것이 모양상이나 깔끔하다.)
 

# day별 tip 합계 조회
tip_sum = tip.groupby('day', as_index=False)[['tip']].sum()

# 라이브러리 불러오기
import matplotlib.pyplot as plt
%config InlineBackend.figure_format='retina' # 고해상도

# day 별 tip 비교 시각화
plt.figure(figsize=(5,3))
# plt.bar(tip_sum['day'], tip_sum['tip'])
plt.bar(x=tip_sum['day'], height=tip_sum['tip'])
plt.title('Tip by day', size=15, pad=10) # , fontweight='bold'
plt.xlabel('Day')
plt.ylabel('Tip($)')
plt.show()
plt.bar() plt.barh()

 
- 이외에도 히스토그램, 선 그래프, 산점도 등 데이터 내용에 따라 다양하게 사용할 수 있다.
 
2. 평균, 최댓값, 최솟값, 개수 구하기

# day + smoker별 나머지 열들 합계 조회
tip_sum = tip.groupby(by=['day', 'smoker'], as_index=False).sum(numeric_only=True)

# 확인
tip_sum

# day별 tip 평균
tip_mean = tip.groupby(by = ['day'], as_index=False)[['tip']].mean()

# 확인
tip_mean

# day + sex 별 나머지 모든 열 평균
tip_mean = tip.groupby(by = ['day', 'sex'], as_index=False).mean(numeric_only=True)

# 확인
tip_mean

# day별 tip 최댓값
tip_max = tip.groupby(by = ['day'], as_index=False)[['tip']].max()
# 확인
tip_max

# day별 tip 최솟값
tip_min = tip.groupby(by = ['day'], as_index=False)[['tip']].min()

# 확인
tip_min