목차
1. 개요
2. 평균(Mean)
2-1 평균의 특징
2-2 평균의 단점
3. 중앙값(Median)
3-1 중앙값의 특징
4. 최빈값(Mode)
4-1 최빈값의 특징
4-2 최빈값의 단점
5. statistics 를 이용하여 계산하기
6. pandas를 이용하여 계산하기
7. statistics vs pandas 비교
1. 개요
평균, 중앙값, 최빈값은 데이터의 중심 경향(Central Tendency)을 나타내는 대표값이다.
중심 경향이란 확률 분포의 중심값 또는 대표값으로, 데이터 집합 내의 중심 위치를 파악한 값을 의미한다.
데이터 분석에서는 전체 데이터를 하나의 대표값으로 요약할 필요가 있으며, 이때 가장 많이 사용되는 값이 3가지가 있다.
- 평균(mean) : 모든 데이터를 더한 후 데이터의 개수로 나눈 값
- 중앙값(median) : 데이터를 크기 순으로 정렬했을 때 가운데 위치하는 값
- 최빈값(mode) : 데이터에서 가장 많이 등장하는 값
히스토그램(Histogram)을 통해 데이터의 분포 상태를 시각적으로 확인할 수 있다.
히스토그램을 통해 다음과 같은 정보를 파악할 수 있다.
- 데이터가 특정 구간에 몰려있는가?
- 데이터가 균일하게 분포되어 있는가?
- 데이터에 이상치가 존재하는가?
- 데이터 분포가 대칭인지 또는 한쪽으로 치우쳐 있는가?
예를 들어, 데이터가 정규분포에 가까운 경우, 평균, 중앙값, 최빈값은 거의 동일하게 나타난다.
반면 데이터가 한쪽으로 치우친 분포일 경우, 세 값이 서로 다른 위치에 나타나게 된다.
따라서, 히스토그램을 통해 데이터의 분포 형태를 확인한 후, 적절한 중심 경향 지표를 선택하는 것이 중요하다.
2. 평균(Mean)
평균이란 데이터 세트에 있는 모든 값의 합을 데이터 세트에 있는 값의 개수로 나눈 값을 의미한다.
일반적으로 표본 평균은 다음과 같이 표현된다.

2-1 평균의 특징
- 데이터가 균일할 때 유용하다.
- 데이터 세트의 모든 값이 계산에 포함된다.
- 각 값과 평균 사이의 편차의 합이 항상 0이다
- 평균은 전체 데이터와의 오차(편차 제곱합)를 최소화하는 대표값이다.
2-2 평균의 단점
- 이상치의 영향을 매우 쉽게 받는다.
- 이상치 : 데이터 세트의 나머지 값들과 비교했을 때 수치가 지나치게 크거나 작은 값
- 중앙값의 경우 이상치가 있는 상황에서 중심 경향을 더 잘 나타낸다.
3. 중앙값(Median)
중앙값이란 크기 순으로 정렬된 데이터 세트에서 중간에 있는 값을 의미한다.
데이터 개수가 짝수일 경우 가운데 두 값의 평균을 중앙값으로 사용한다.
3-1 중앙값의 특징
- 데이터가 비대칭적일 때 적합하다.
- 이상치의 영향을 덜 받는다.
4. 최빈값(Mode)
최빈값이란 데이터 세트에서 가장 빈번하게 나타나는 값을 의미한다.
즉, 가장 많이 사용되는 값을 의미한다.
4-1 최빈값의 특징
- 범주형 데이터에서 가장 흔한 범주를 알고 싶을 때 사용한다.
- 연속형 데이터에는 잘 사용되지 않는다.
4-2 최빈값의 단점
최빈값이 데이터의 중심을 항상 잘 나타내는 것은 아니다.
예를 들어, 가장 많이 등장한 값이 전체 데이터의 중심에서 크게 벗어나 있을 경우 아예 존재하지 않을 수도 있다.
또한 데이터에 따라 최빈값이 여러 개 존재하거나, 데이터의 대표값으로 적절하지 않을 수 있다.
5. statistics를 이용하여 계산하기
statistics은 Python의 내장 모듈로, 숫자 데이터의 수학적 통계를 계산하는데 사용된다.
Python의 statistics 모듈은 데이터 분석 초기 단계에서 기본적인 통계 값을 빠르게 확인할 수 있다.
여러 메서드가 있지만 그 중에서 아래 메서드를 사용할 예정이다.
- statistics.mean() : 주어진 데이터의 평균값을 계산한다.
- statistics.median() : 주어진 데이터의 중앙값(중간값)을 계산한다.
- statistics.mode() : 주어진 데이터의 최빈값을 계산한다.
- statistics.multimode() : 주어진 데이터의 최빈값을 계산한다. 단, 최빈값이 여러개일 경우 두 개 이상의 결과를 반환한다.
예제 1) 데이터 생성
import statistics
data = [10, 20, 20, 30, 40, 40, 40, 50]
print(data)
예제 1) 출력 결과
[10, 20, 20, 30, 40, 40, 40, 50]
예제 2) 평균값 구하기
mean_value = statistics.mean(data)
print("평균값:", mean_value)
예제 2) 출력 결과
평균값: 31.25
예제 3) 중앙값 구하기
median_value = statistics.median(data)
print("중앙값:", median_value)
예제 3) 출력 결과
중앙값: 35.0
예제 4) 최빈값 구하기
mode_value = statistics.mode(data)
print("최빈값:", mode_value)
예제 4) 출력 결과
최빈값: 40
예제 5) 여러 개의 최빈값 구하기
data2 = [10, 20, 20, 30, 30, 40]
multi_mode = statistics.multimode(data2)
print("여러 개의 최빈값:", multi_mode)
예제 5) 출력 결과
여러 개의 최빈값: [20, 30]
6. pandas를 이용하여 계산하기
pandas는 데이터 분석 라이브러리로, 데이터의 평균, 중앙값, 최빈값 등 통계 값을 쉽게 계산할 수 있다.
여러 메서드가 있지만 그 중에서 아래 메서드를 사용할 예정이다.
- mean() : 주어진 데이터의 평균값을 계산한다.
- median() : 주어진 데이터의 중앙값을 계산한다.
- mode() : 주어진 데이터의 최빈값을 계산한다. 최빈값이 여러 개일 경우, 여러 값을 반환한다.
예제 1) 데이터 생성하기
import pandas as pd
data = {
'Score': [10, 20, 20, 30, 40, 40, 40, 50]
}
df = pd.DataFrame(data)
print(df)
예제 1) 출력 결과
Score
0 10
1 20
2 20
3 30
4 40
5 40
6 40
7 50
예제 2) 평균값 구하기
'Score' 열의 평균을 구하는 코드는 다음과 같다.
mean_value = df['Score'].mean()
print("평균값:", mean_value)
예제 2) 출력 결과
평균값: 31.25
예제 3) 중앙값 구하기
'Score' 열의 중앙값을 구하는 코드는 다음과 같다.
median_value = df['Score'].median()
print("중앙값:", median_value)
예제 3) 출력 결과
중앙값: 35.0
예제 4) 최빈값 구하기
'Score' 열의 최빈값을 구하는 코드는 다음과 같다.
mode_value = df['Score'].mode()
print("최빈값:", mode_value)
예제 4) 출력 결과
0 40
Name: Score, dtype: int64
예제 5) 최빈값 하나만 구하기
mode_value = df['Score'].mode()[0]
print("최빈값:", mode_value)
예제 5) 출력 결과
pandas의 mode() 메서드는 최빈값이 여러 개일 가능성을 고려하여, Series의 형태로 반환한다.
따라서, 하나의 값만 필요한 경우 mode()[0]을 사용한다.
최빈값: 40
7. statistics vs pandas 비교
| 구분 | statistics | pandas |
| 라이브러리 유형 | Python 내장 모듈 | 데이터 분석 라이브러리 |
| 사용 데이터 | 리스트, 튜플 등 | DataFrame, Series |
| 주요 목적 | 간단한 통계 계산 | 데이터 분석 및 처리 |
| 평균 | statistics.mean() | df['column'].mean() |
| 중앙값 | statistics.median() | df ['column'] .median() |
| 최빈값 | statstics.mode() | df ['column'] .mode() |
| 다중 최빈값 | statistics.multimode() | df ['column'] .mode() |
머신러닝에서는 데이터의 분포를 이해하는 것이 매우 중요하며,
평균, 중앙값, 최빈값은 데이터의 기본적인 특성을 파악하는 데 사용되는 핵심 통계 지표이다.
'머신러닝&딥러닝' 카테고리의 다른 글
| 머신러닝 & 딥러닝 기초 12편 | 정규분포, 왜도, 첨도 (0) | 2026.03.14 |
|---|---|
| 머신러닝 & 딥러닝 기초 11편 | 분산, 표준편차, 사분위수 (0) | 2026.03.14 |
| 머신러닝 & 딥러닝 기초 9편 | 데이터 통합, 조인(merge, concat) (0) | 2026.03.13 |
| 머신러닝 & 딥러닝 기초 8편 | 데이터 변환 및 스케일링 (0) | 2026.03.13 |
| 머신러닝 & 딥러닝 기초 7편 | 데이터 정제(결측치, 이상치 처리 등) (1) | 2026.03.12 |