기본 콘텐츠로 건너뛰기

방송대 오픈소스기반데이터분석 6강: 데이터 전처리와 describe() 진단

오픈소스기반데이터분석 6강 - 데이터 전처리 (1)


방송대 오픈소스기반데이터분석 6강: 데이터 전처리와 describe() 진단

결측치 하나를 채우기 전에 먼저 물어야 할 것은 “무엇이 잘못되었고, 그 문제가 분석 결과를 어떻게 흔드는가?”이다. 이 글은 원시 데이터의 결함을 진단표로 분류하고, 평균·중앙값·사분위수와 Pandas의 describe()를 이용해 전처리 근거를 만드는 방법을 단계별로 익힌다.

수정부터 시작하면 데이터의 의미를 바꿀 수 있다

판매 데이터에서 빈칸, 문자로 적힌 가격, 음수 판매량을 발견했다고 하자. 모두 “이상해 보이는 값”이지만 같은 방식으로 처리할 수는 없다. 빈 가격은 실제로 누락된 값일 수 있고, mouse마우스는 같은 상품을 다르게 적은 값일 수 있으며, 판매량 -10은 입력 오류일 수도 반품을 뜻할 수도 있다. 값의 업무 의미를 확인하지 않고 빈칸을 0으로 채우거나 음수를 지우면 원자료보다 더 그럴듯하지만 더 틀린 데이터가 된다.

진단 핵심: 전처리는 “이상한 값을 없애는 작업”이 아니라, 분석 목적에 필요한 정확성·일관성을 확보하면서 원래 의미를 보존하는 의사결정이다.

강의자료의 GIGO(Garbage In, Garbage Out)는 입력 품질이 결과 품질을 제한한다는 원칙이다. 정교한 알고리즘도 잘못된 입력을 스스로 올바른 사실로 바꾸지는 못한다. 따라서 분석자는 처리 방법보다 먼저 데이터의 구조, 값의 범위, 누락과 중복, 표기 규칙을 측정해야 한다.

관찰된 현상가능한 문제확인할 질문성급한 처리의 위험
가격 칸이 비어 있음결측치미판매인가, 수집 실패인가?0으로 채우면 무료 판매로 오해할 수 있다.
가격에 ‘오류’ 입력자료형·값 오류원본 영수증이나 입력 규칙으로 복구 가능한가?행 전체를 지우면 다른 정상 정보도 잃는다.
mouse와 마우스 혼재표기 불일치동일 상품을 뜻하는가?그룹별 집계에서 서로 다른 범주로 계산된다.
판매량이 -10이상치 또는 의미 있는 값오류인가, 반품을 음수로 기록한 것인가?무조건 삭제하면 반품 정보가 사라진다.
같은 거래가 두 번 존재중복거래 식별자가 같은가?합계와 빈도가 부풀려진다.

전처리는 측정에서 시작해 변환까지 반복된다

데이터 전처리는 원시 데이터(raw data)를 분석에 적합한 형태로 정제하고 변환하는 일련의 작업이다. 강의자료는 이를 측정, 정제, 통합, 축소, 변환의 다섯 기능으로 설명한다. 이들을 한 번씩 지나가는 고정 직선으로 이해하면 안 된다. 통합 뒤에 새로운 중복이 드러나거나, 변환 뒤 분포가 달라질 수 있으므로 다시 측정하고 확인하는 반복 과정이다.

기능해결하려는 질문대표 작업완료 뒤 재확인
측정현재 구조와 분포는 어떠한가?자료형, 개수, 대표값, 산포 확인문제의 위치와 규모가 수치로 드러났는가?
정제불완전·불일치·이상 값을 어떻게 다룰까?결측치 처리, 오류 수정, 이상치 검토행 수와 분포가 의도대로 바뀌었는가?
통합서로 다른 저장소를 일관되게 합칠 수 있는가?키 맞추기, 표기 통일, 중복 제거누락되거나 중복 결합된 레코드는 없는가?
축소중요 정보는 보존하면서 크기를 줄일 수 있는가?샘플링, 특징 추출, 차원 축소, 압축분석에 필요한 변동과 집단이 남았는가?
변환분석 방법이 요구하는 구조와 값으로 바꿀 수 있는가?정규화, 이산화, 형식·자료형 변환단위와 의미가 올바르게 해석되는가?

측정은 전처리의 첫 단계이면서 품질 확인 단계이기도 하다. 처리 전후의 count, 최솟값·최댓값, 사분위수를 비교해야 수정이 새로운 오류를 만들지 않았는지 판단할 수 있다.

측정 기준과 통계 지표는 서로 다른 질문에 답한다

“무엇을 기준으로 묶어 볼 것인가”와 “어떤 수치로 요약할 것인가”를 구분해야 한다. 전체 측정은 데이터셋의 전반 상태를, 레코드별 측정은 개별 행의 규칙 위반을, 그룹별 측정은 지점이나 상품처럼 집단 사이의 차이를 보여 준다. 그다음 질문에 맞는 통계 지표를 선택한다.

알고 싶은 것우선 볼 지표판단 이유주의점
전형적인 수치평균·중앙값중심 경향을 서로 다른 방식으로 요약한다.평균은 이상치에 민감하므로 중앙값과 함께 본다.
가장 흔한 범주최빈값출현 빈도가 가장 큰 값을 찾는다.최빈값이 둘 이상이거나 뚜렷하지 않을 수 있다.
흩어진 정도분산·표준편차평균 주변의 변동을 수치화한다.분산은 원래 단위의 제곱, 표준편차는 원래 단위다.
전체 폭범위최댓값에서 최솟값을 빼 빠르게 폭을 본다.양 끝 두 값에만 의존해 이상치에 민감하다.
중앙 50%의 폭사분위수·IQRQ1과 Q3 사이의 안정적인 분포 폭을 본다.사분위수 계산 방식에 따라 경계값이 조금 달라질 수 있다.
비대칭과 꼬리왜도·첨도치우침과 꼬리·뾰족함을 파악한다.하나의 지표만으로 원인을 단정하지 않는다.
누락 가능성개수(count)전체 행 수와 비결측 개수의 차이를 확인한다.describe()의 count는 결측치를 제외한다.

평균 하나가 숨기는 이상치를 단계별로 찾아본다

학습을 위해 어떤 상품의 일별 판매량을 10, 12, 13, 15, 50으로 가정하자. 마지막 값 50이 평소와 다른지 느낌이 아니라 계산 근거로 확인한다.

중심과 범위를 계산한다

  1. 합계는 10 + 12 + 13 + 15 + 50 = 100, 개수는 5이므로 평균은 100 ÷ 5 = 20이다.
  2. 정렬된 다섯 값의 가운데 값은 13이므로 중앙값은 13이다.
  3. 범위는 50 - 10 = 40이다.
  4. Pandas의 기본 분위수 계산 결과를 적용하면 Q1은 12, Q2는 13, Q3은 15이며 IQR은 15 - 12 = 3이다.

평균 20과 중앙값 13의 차이가 크다는 사실은 큰 값이 평균을 끌어올렸다는 신호다. IQR 규칙을 진단 보조 도구로 쓰면 위쪽 경계는 Q3 + 1.5 × IQR = 15 + 4.5 = 19.5다. 50은 이 경계를 넘으므로 검토할 이상치 후보가 된다.

판단 핵심: 이상치 후보라는 판정은 삭제 명령이 아니다. 50이 행사일의 실제 판매인지, 단위나 입력 오류인지 원천 기록과 업무 맥락을 확인한 뒤 유지·수정·제외를 결정한다.

표준편차는 분산보다 단위를 해석하기 쉽다

분산은 각 값과 평균의 차이를 제곱해 평균 낸 값이므로 원래 단위가 제곱된다. 표준편차는 분산의 제곱근이라 판매량과 같은 원래 단위로 흩어짐을 읽을 수 있다. Pandas의 describe()가 보여 주는 std는 표본 표준편차이며, 위 다섯 값에서는 약 16.87이다. 50 때문에 산포가 크게 나타난다는 점을 평균·중앙값 차이와 함께 해석할 수 있다.

describe()는 자료형에 따라 서로 다른 요약표를 만든다

Pandas의 describe()는 데이터 상태를 빠르게 스캔하는 도구다. 기본 호출은 주로 수치형 열을 요약하여 count, mean, std, min, 25%, 50%, 75%, max를 반환한다. 범주형 열은 count, unique, top, freq로 고유값과 최빈값을 요약한다.

다음은 강의 범위에 맞게 직접 구성한 진단 예제다. np.nan을 사용하므로 NumPy도 불러온다.

import numpy as np
import pandas as pd

data = {
    "지점": ["서울", "부산", "서울", "대전", "서울"],
    "판매량": [10, 12, 13, 15, 50],
    "만족도": [4.2, 3.8, np.nan, 4.0, 4.5]
}

df = pd.DataFrame(data)

print(df.describe())
print(df.describe(include=[np.number]))
print(df.describe(include=["object"]))

기본 호출과 include=[np.number]는 이 데이터에서 수치형 열인 판매량과 만족도를 요약한다. 만족도의 count는 4이고 전체 행은 5이므로 결측치가 한 개 있음을 알 수 있다. include=["object"]는 지점 열을 요약하며, unique는 3, top은 서울, freq는 3이다.

출력 항목수치형에서의 의미범주형에서의 의미전처리 단서
count결측치를 제외한 값의 수결측치를 제외한 값의 수전체 행 수보다 작으면 누락을 점검한다.
mean / std평균 / 표본 표준편차제공되지 않음중심과 변동이 예상 범위인지 본다.
min / max최솟값 / 최댓값제공되지 않음허용 범위 밖 값을 찾는다.
25% / 50% / 75%Q1 / 중앙값 / Q3제공되지 않음IQR과 치우침을 점검한다.
unique기본 수치형 요약에는 없음고유값 수표기 불일치로 범주가 늘었는지 본다.
top / freq기본 수치형 요약에는 없음최빈값 / 그 빈도대표 범주와 편중을 확인한다.

describe()만으로 열의 자료형, 메모리 사용량, 전체 비결측 개수를 모두 파악할 수는 없다. 강의자료가 함께 제시한 info()로 열별 자료형과 non-null 개수를 확인하고, 두 결과를 교차해 진단한다.

통계표를 전처리 처방으로 바꾸는 네 단계

요약 통계량은 자동 처방전이 아니라 질문을 좁히는 증거다. 다음 순서를 사용하면 수치를 보고도 무엇을 해야 할지 모르는 상황을 피할 수 있다.

  1. 구조를 확인한다. 행·열 수, 열 이름, 자료형, 비결측 개수를 확인한다. 숫자 열이 object라면 ‘오류’ 같은 문자열이 섞였는지 찾는다.
  2. 범위와 분포를 확인한다. 최솟값·최댓값, 평균·중앙값, Q1·Q3를 함께 본다. 판매량 음수처럼 허용 규칙을 벗어난 값과 평균을 흔드는 극단값을 분리한다.
  3. 업무 의미를 확인한다. 결측·이상·불일치가 수집 실패인지 실제 사건인지 원천 자료와 기록 규칙으로 판정한다.
  4. 처리 뒤 다시 측정한다. 행 수, 결측치 수, 분포, 그룹별 합계를 전후 비교해 정보 손실과 왜곡 여부를 검산한다.

예를 들어 만족도 결측치 하나를 발견했다면 곧바로 평균으로 채우지 않는다. 결측 원인이 무응답인지 시스템 오류인지, 분석 모델이 결측을 허용하는지, 지점별 차이가 있는지를 확인한다. 처리 선택은 삭제, 대체, 별도 범주화 등으로 달라질 수 있으며, 선택 근거를 기록해야 재현 가능한 분석이 된다.

오류 교정 규칙: “통계적으로 드물다 → 틀린 값이다 → 삭제한다”는 추론은 성립하지 않는다. 드문 값을 탐지한 통계 근거와 그 값을 처리할 업무 근거는 별개의 확인 단계다.

군집 예제는 변환과 검산의 필요성까지 보여 준다

강의자료는 나이와 소득을 가진 DataFrame에 K-means를 적용해 군집 열을 추가하는 예를 제시한다. 이 예에서 입력 특성을 선택하고 새로운 분석용 열로 바꾸는 과정은 전처리와 분석이 맞닿는 지점을 보여 준다. 다만 소득의 수치 규모가 나이보다 훨씬 크므로 거리 기반 군집에서는 소득이 거리에 더 큰 영향을 줄 수 있다.

따라서 코드를 실행했다는 사실만으로 군집이 타당하다고 결론 내리면 안 된다. 각 열의 분포와 단위를 측정하고, 분석 목적에 따라 스케일 조정 필요성을 검토한 뒤, 군집별 개수와 중심을 다시 확인해야 한다. 이 판단은 강의의 핵심 원칙인 “측정 → 변환 → 재측정”을 실제 분석 흐름에 연결한다.

스케일 조정의 구체적 기법은 이 차시의 중심 범위를 넘어가므로 여기서는 방법을 확장하지 않는다. 중요한 것은 변환 전에 단위 차이를 발견하고, 변환 후 결과를 다시 측정하는 습관이다.

핵심 개념 정리

  • GIGO는 분석 기법보다 입력 데이터의 품질이 먼저라는 원칙이다.
  • 전처리는 측정·정제·통합·축소·변환을 필요에 따라 반복하며 정확성과 일관성을 높이는 과정이다.
  • 평균과 중앙값, 범위와 IQR은 같은 역할이 아니다. 이상치에 대한 민감도와 알고 싶은 질문에 따라 함께 비교한다.
  • describe()의 수치형 요약과 범주형 요약은 출력 항목이 다르며, count는 결측치를 제외한다.
  • 이상치 탐지는 검토 대상을 찾는 단계이고, 유지·수정·삭제는 원자료의 의미를 확인한 뒤 내리는 별도 결정이다.

새 데이터셋을 만나면 구조 확인 → 측정 기준 선택 → 중심·산포·누락 진단 → 업무 의미 확인 → 필요한 정제·통합·축소·변환 → 같은 지표로 재측정의 순서로 접근한다. 이 순서를 지키면 전처리는 감에 따른 값 수정이 아니라 근거와 검산을 갖춘 분석 절차가 된다.

예상문제 10선

1. GIGO 원칙을 가장 정확하게 설명한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①

  • ① 정답: 입력 품질이 결과 품질의 상한을 정한다는 GIGO의 뜻을 정확히 설명한다.
  • ② 오답: 알고리즘의 복잡성은 잘못 입력된 사실의 의미를 자동 복원하지 못한다.
  • ③ 오답: 큰 데이터에서도 체계적 누락이나 불일치는 편향과 오류를 만들 수 있다.
  • ④ 오답: 전처리는 분석에 앞서 원시 데이터를 적합한 형태로 만드는 작업이며 필요하면 반복된다.

2. 데이터 축소와 데이터 변환의 차이를 바르게 구분한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③

  • ① 오답: 표기 통일은 정제·변환과, 저장소 결합은 통합과 더 가깝다.
  • ② 오답: 결측치 처리와 중복 제거는 주로 정제 과정의 문제다.
  • ③ 정답: 크기 감소와 형태·값 변경이라는 두 기능의 목적을 정확히 구분한다.
  • ④ 오답: 분포와 자료형의 관찰은 측정이며 축소나 변환의 정의가 아니다.

3. 판매량이 10, 12, 13, 15, 50일 때 평균과 중앙값의 조합은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②

  • ① 오답: 13은 정렬된 값의 중앙값이며 평균과 중앙값을 뒤바꾸었다.
  • ② 정답: 합계 100을 5로 나누면 평균 20이고 세 번째 값은 13이다.
  • ③ 오답: 15는 네 번째 값이며 다섯 값의 한가운데가 아니다.
  • ④ 오답: 합계 100을 개수 4가 아니라 5로 나누어야 한다.

4. 판매량 -10을 발견한 분석자의 첫 대응으로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④

  • ① 오답: 행에는 다른 정상 정보가 있을 수 있고 음수가 실제 반품을 뜻할 수도 있다.
  • ② 오답: 0은 판매 없음이라는 새 의미를 부여하므로 근거 없는 대체다.
  • ③ 오답: 부호 변경은 실제 값이 10이라는 증거가 없으면 데이터 조작이 된다.
  • ④ 정답: 통계적 이상과 업무상 오류를 구분한 뒤 처리 결정을 내려야 한다.

5. 근거 있는 전처리 순서로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②

  • ① 오답: 문제의 원인과 규모를 확인하기 전에 삭제하면 의미 있는 정보를 잃을 수 있다.
  • ② 정답: 관찰과 근거 확인을 먼저 하고 같은 지표로 처리 결과를 검산하는 순서다.
  • ③ 오답: 분석 목적과 결측 원인을 모른 채 평균 대체부터 할 수 없다.
  • ④ 오답: 수집과 전처리 진단보다 모델과 시각화를 먼저 두어 순서가 뒤바뀌었다.

6. 범위와 IQR을 바르게 비교한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①

  • ① 정답: 범위는 최댓값-최솟값, IQR은 Q3-Q1이라는 차이를 정확히 설명한다.
  • ② 오답: 제곱 거리와 그 제곱근은 분산과 표준편차의 관계다.
  • ③ 오답: 최빈값과 빈도는 범주형 요약의 top과 freq에 해당한다.
  • ④ 오답: 두 지표가 사용하는 데이터 위치가 달라 값도 일반적으로 다르다.

7. 전체 행이 5개인데 만족도 열의 describe() 결과에서 count가 4라면 무엇을 우선 추론할 수 있는가?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④

  • ① 오답: 수치형 count는 고유값 수가 아니라 결측치를 제외한 관측값 수다.
  • ② 오답: count 4는 값의 개수이며 평균값을 뜻하지 않는다.
  • ③ 오답: count 차이는 누락 단서이지 이상치 수를 직접 알려 주지 않는다.
  • ④ 정답: 전체 5행 중 비결측 값이 4개라면 한 행의 값이 누락되었는지 확인해야 한다.

8. 범주형 열에 describe(include=["object"])를 적용했을 때 top과 freq의 의미는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③

  • ① 오답: 범주형 요약의 top은 정렬상 최댓값이 아니며 freq도 전체 행 수와 다를 수 있다.
  • ② 오답: 고유값 수는 unique이고 top은 입력 순서의 첫 값이 아니다.
  • ③ 정답: 가장 자주 나타난 범주와 그 횟수를 짝으로 보여 준다.
  • ④ 오답: 중앙값과 표준편차는 수치형 요약 항목이며 top·freq의 의미가 아니다.

9. “IQR 경계 밖의 값은 모두 오류이므로 삭제한다”는 주장에 대한 교정으로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①

  • ① 정답: 통계적 탐지와 업무 의미에 따른 처리 결정을 분리한다.
  • ② 오답: IQR은 Q3-Q1이며 평균과 같은 지표가 아니다.
  • ③ 오답: IQR은 중앙 50%의 폭이고 이상치 후보 경계를 만드는 데 활용된다.
  • ④ 오답: 정상값까지 대체하면 원래 분포와 변동을 파괴한다.

10. 숫자 열이 object로 읽히고, 최솟값·평균이 출력되지 않는 상황의 진단 순서로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④

  • ① 오답: 열 전체 삭제는 정상 수치까지 잃게 하므로 오류 위치를 먼저 찾아야 한다.
  • ② 오답: 0 일괄 대체는 실제 값과 누락·오류의 의미를 뒤섞는다.
  • ③ 오답: 본래 수치 열이라면 범주형으로 고정하기보다 잘못 섞인 값을 진단해야 한다.
  • ④ 정답: 구조 확인, 원인 파악, 근거 있는 정제와 형 변환, 재측정의 전체 절차를 따른다.

참고 자료와 작성 기준

이 글은 해당 차시 강의자료를 바탕으로 학습 목적에 맞게 재구성한 비공식 학습자료입니다. 개념 관계, 계산 예제와 문제 해설은 학습자의 이해를 돕도록 구성하고 검토했습니다.

  • 작성·편집: 올에이클래스 학습연구팀
  • 주요 근거: 한국방송통신대학교 컴퓨터과학과, 「오픈소스 기반 데이터분석」 6강 ‘데이터 전처리 1’ 강의자료(PDF 생성 정보: 2025년)
  • 편집 원칙: 올에이클래스 편집 정책
  • 최종 내용 검토: 2026-08-30

댓글