집계된 데이터에 대한 분석 방법을 배웠다.
그래프를 그려 시각화하는 것도 배웠는데 드디어 뭔가 공부했던 것들이 눈 앞에 실현되는 기분이라 뿌듯하였다.
들어가기 앞서 연속값, 범주값의 용어에 대한 설명을 들었다.
집계기준이 될 범주값과, 집계 대상 열이 되는 연속값 (합,평균등 집계)은데
예를 들어 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
'파이썬 > 데이터 다듬기' 카테고리의 다른 글
[240920] 데이터다듬기#6 - 판다스 데이터프레임 변경 (2) (0) | 2024.09.21 |
---|---|
[240920] 데이터다듬기 #5 판다스 데이터프레임 변경(1) (1) | 2024.09.21 |
[240913] 데이터다듬기#3 - 판다스 데이터프레임 조회 (1) | 2024.09.13 |
[240912] 데이터 다듬기 #2 판다스 데이터프레임 생성 (0) | 2024.09.12 |
[240912] 데이터 다듬기 #1 Numpy(넘파이) (2) | 2024.09.12 |