혼자 공부하는 데이터 분석 with 파이썬 - 예스24
혼자 해도 충분하다! 1:1 과외하듯 배우는 데이터 분석 자습서이 책은 독학으로 데이터 분석을 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했습니다. 뭘 모르는지조차
www.yes24.com
https://www.yes24.com/Product/Goods/116253011
4주차(25.2.3 - 2.9) Chapter 04 데이터 요약하기
기본미션
▶ p.279 확인문제 5번 풀이
Q5. ns_book7 남산도서관 대출 데이터에서 1980년 ~ 2022년 사이에 발행된 도서를 선택하여 다음과 같은 '발행년도'열의 히스토그램을 그려보세요.
selected_rows = ()
plt.show()
sol)
# 데이터 선택
selected_rows = (1980 <= ns_book7['발행년도']) & (ns_book7['발행년도'] <= 2022)
# 히스토그램 그리기
plt.hist(ns_book7.loc[selected_rows, '발행년도'], bins=20, color='khaki', edgecolor='black')
# 그래프 제목, 축 제목, 레이블 추가
plt.title('발행년도 히스토그램 (1980-2022)', fontsize=14)
plt.xlabel('발행년도', fontsize=12)
plt.ylabel('빈도 수', fontsize=12)
# 그리드 추가
plt.grid(True)
# x축 범위 설정
plt.xlim(1980, 2022)
# 그래프 출력
plt.show()
추가미션
▶ 기술통계량 개념 정리
import numpy as np
import pandas as pd
# 예제 데이터 생성
data = [1, 2, 2, 3, 4, 4, 4, 5, 5, 6]
series = pd.Series(data)
평균 (Mean)
- 모든 데이터 값의 합을 데이터 개수로 나눈 값
- 일반적으로 가장 많이 사용되는 대표값이지만 극단값에 민감함
mean_np = np.mean(data) # NumPy 사용
mean_pd = series.mean() # Pandas 사용
print(f"평균: {mean_np}") # 출력: 3.6
중앙값 (Median)
- 데이터를 크기순으로 정렬했을 때 중앙에 위치한 값
- 극단값의 영향을 덜 받아 평균보다 안정적인 특징
- 홀수 개의 데이터는 가운데 값, 짝수 개는 가운데 두 값의 평균
median_np = np.median(data) # NumPy 사용
median_pd = series.median() # Pandas 사용
print(f"중앙값: {median_np}") # 출력: 4.0
최빈값 (Mode)
- 데이터에서 가장 자주 나타나는 값
- 범주형 데이터에서 특히 유용
- 여러 개가 존재할 수 있음
mode = series.mode() # Pandas 사용
print(f"최빈값: {mode[0]}") # 출력: 4
분산 (Variance)
- 데이터가 평균으로부터 얼마나 퍼져있는지 나타내는 지표
- 각 데이터와 평균의 차이를 제곱한 값들의 평균
- 단위가 제곱되어 있어 직관적 해석이 어려움
var_np = np.var(data) # NumPy 사용
var_pd = series.var() # Pandas 사용
print(f"분산: {var_pd}") # 출력: 2.04
표준편차 (Standard Deviation)
- 분산의 제곱근
- 원래 데이터와 같은 단위를 가져 해석이 용이함
- 데이터의 68%가 평균±표준편차 범위에 있음
std_np = np.std(data) # NumPy 사용
std_pd = series.std() # Pandas 사용
print(f"표준편차: {std_pd}") # 출력: 1.43
최솟값 (Minimum)
- 데이터 중 가장 작은 값
- 데이터의 하한을 나타냄
min_val = series.min() # 최솟값
max_val = series.max() # 최댓값
print(f"최솟값: {min_val}") # 출력: 1
최댓값 (Maximum)
- 데이터 중 가장 큰 값
- 데이터의 상한을 나타냄
min_val = series.min() # 최솟값
max_val = series.max() # 최댓값
print(f"최댓값: {max_val}") # 출력: 6
분위수 (Quantiles)
- 데이터를 크기순으로 정렬했을 때 특정 비율에 해당하는 값:
- 4분위수: 25%(Q1), 50%(Q2=중앙값), 75%(Q3)
- 백분위수: 데이터를 100등분했을 때의 각 지점
# 사분위수 계산
q1 = series.quantile(0.25) # 1사분위수
q2 = series.quantile(0.50) # 2사분위수(중앙값)
q3 = series.quantile(0.75) # 3사분위수
print(f"1사분위수: {q1}") # 출력: 2.25
print(f"2사분위수: {q2}") # 출력: 4.0
print(f"3사분위수: {q3}") # 출력: 4.75
'혼공학습단(한빛미디어)' 카테고리의 다른 글
[혼공단13기] 혼자 공부하는 데이터 분석 with 파이썬 - 6주차 (2) | 2025.02.18 |
---|---|
[혼공단13기] 혼자 공부하는 데이터 분석 with 파이썬 - 5주차 (0) | 2025.02.15 |
[혼공단13기] 혼자 공부하는 데이터 분석 with 파이썬 - 3주차 (0) | 2025.01.24 |
[혼공단13기] 혼자 공부하는 데이터 분석 with 파이썬 - 2주차 (0) | 2025.01.17 |
[혼공단13기] 혼자 공부하는 데이터 분석 with 파이썬 - 1주차 (0) | 2025.01.12 |