JejuSudal 2023. 6. 5. 17:47

4-1. 통계로 요약하기

# describe 메서드
ns_book6.describe()
ns_book7.describe(percentiles=[0.3, 0.6, 0.9])
ns_book7.describe(include='object')  # 숫자아니어도 포함

# 평균
ns_book7['대출건수'].mean()
# 중앙값
ns_book7['대출건수'].median()
# max, min
ns_book7['대출건수'].max()
ns_book7['대출건수'].min()
# 분위수
ns_book6['대출건수'].quantile(0.25)
ns_book6['대출건수'].quantile([ ])
# 분산
ns_book7['대출건수'].var()
# 표준편차
ns_book7['대출건수'].std()
# 최빈값
ns_book7['대출건수'].mode()

4-2. 분포로 요약하기

한눈에 확인할 수 있는 방법이 없나요?

산점도

import matplotlib.pyplot as plt

plt.scatter([1,2,3,4], [1,2,3,4])
plt.show()

plt.scatter(ns_book7['도서권수'], ns_book7['대출건수'], alpha=0.1)
plt.show()

히스토그램

## 1
plt.hist([0,3,5,6,7,7,9,13], bins=5)
plt.show()

import numpy as np
np.histogram_bin_edges([0,3,5,6,7,7,9,13], bins=5) ## bins=나누는 구간의 수

## numpy로 평균, 표편 구하기
np.random.seed(42)  ## 난수 생성
random_samples = np.random.randn(1000)
print(np.mean(random_samples), np.std(random_samples))

>>> 0.019, 0.978 -> 표준정규 분포를 다른다고 할 수 있음

plt.hist(random_samples)
plt.show()

## 2
plt.hist(ns_book7['대출건수'])
plt.yscale('log')
plt.show()

## 1, ## 2

상자수염 그래프

## 1
plt.boxplot(ns_book7[['대출건수', '도서권수']])
plt.yscale('log')
plt.show()

## 2
plt.boxplot(ns_book7[['대출건수', '도서권수']], vert=False) ## ver=False: 수평으로
plt.xscale('log')
plt.show()

## 1, ## 2

728x90