도수분포표와 히스토그램 :: Python 기초 통계 - mindscale
Skip to content

도수분포표와 히스토그램

  • 도수분포표(frequency table): 데이터를 구간으로 나누어, 각 구간의 빈도를 나타낸 표
  • 히스토그램(histogram): 도수분포표를 그래프로 그린 것

범주 변수

다음과 같이 혈액형이 있다고 하자.

blood = ['A', 'A', 'A', 'B', 'B', 'AB', 'O']

numpy를 이용한 도수 분포표

import numpy as np
np.unique(blood, return_counts=True)
(array(['A', 'AB', 'B', 'O'], dtype='<U2'), array([3, 1, 2, 1], dtype=int64))

pandas를 이용하는 방법

import pandas as pd
pd.Series(blood).value_counts()
A     3
B     2
O     1
AB    1
dtype: int64

시각화:

import seaborn as sns
sns.countplot(blood)
<matplotlib.axes._subplots.AxesSubplot at 0x151634bb0b8>

연속변수

x = [1, 1, 1, 2, 3, 5, 5, 7, 8, 9]

데이터의 범위를 4구간으로 나눔

hist, edges = np.histogram(x, 4)
  • 먼저 각 구간의 경계는 1, 3, 5, 7, 9임
  • 1이상 3미만, 3이상 5미만, 등등으로 구간이 정해짐
edges
array([1., 3., 5., 7., 9.])

첫번째 구간 1~3의 빈도는 4, 두번째 구간 3~5의 빈도는 1, 등등

hist
array([4, 1, 2, 3], dtype=int64)

시각화:

sns.distplot(x, bins=4, kde=False)
<matplotlib.axes._subplots.AxesSubplot at 0x15164622198>