---
title: "data-prep"
description: "엉망인 CSV·엑셀을 진단하고 원본은 그대로 둔 채 깔끔한 정돈본을 새 파일로 만들어주는 스킬입니다. 공백·날짜·중복은 물론 대소문자 혼재(usa/USA)·깨진 인코딩(mojibake)·통화표기($1,200)까지 정제하고, 숫자에 텍스트가 섞인 열은 경고합니다. \"이 엑셀 정리해줘\", \"제목 행이 위에 있는데 정리해줘\", \"소계 행 빼고 깔끔하게\", \"대소문자 통일해줘\", \"중복 제거해줘\"처럼 말하면 됩니다. 진단 → [가설] 제시 → 사용자 확인 → 정돈본 산출의 4단계로 안전하게 동작하며, cp949 한국 엑셀도 그대로 읽습니다."
pack: itda-data-analysis
slug: data-prep
status: experimental
tags: ["csv", "tidy", "cleanup", "header", "subtotal", "mojibake", "casing", "stdlib", "incubating"]
---
엉망인 CSV·엑셀을 진단해 **원본은 그대로 둔 채** 깔끔한 정돈본을 새 파일로 만들어 주는 스킬입니다. **Claude에게 말로 부탁하면 됩니다** — "이 엑셀 정리해줘", "소계 행 빼고 깔끔하게"처럼요.

---

## 빠른 시작

```
/data-prep 이 엑셀 정리해줘
/data-prep 제목 행이 위에 있는데 정리해줘
/data-prep 소계 행 빼고 깔끔하게
/data-prep 대소문자 통일해줘
/data-prep 중복 제거해줘
```

파일을 보여주면 헤더 위치·소계 행·빈 열을 **진단 → [가설] 제시 → 확인 → 정돈본 산출** 순서로 처리합니다. 확인 전에는 아무것도 바꾸지 않고 "~로 보입니다" 형태로만 제안하며, 잘못 잡은 부분이 있으면 정정해 다시 제시합니다. 원본은 절대 건드리지 않고, 정돈본과 함께 무엇을 제거·정제했는지 적은 변환 로그를 새 파일로 남기며, 같은 입력은 항상 같은 결과를 냅니다.

---

## 활용 시나리오

### 제목 행이 중간에 있는 표 정리

안내 문구나 제목이 맨 윗줄을 차지해 진짜 열 이름이 몇 줄 아래에 있으면, 헤더 행을 추정해 위쪽 군더더기를 걷어냅니다.

```
/data-prep 제목 행이 3번째 줄에 있는데 헤더로 잡아서 정리해줘
```

### 소계·빈 행·빈 열 제거

합계·소계 행이나 비어 있는 행·열이 섞인 표에서 깔끔한 데이터만 남깁니다.

```
/data-prep 소계 행이랑 빈 열 빼고 깔끔하게 정리해줘
```

### 값 정제 (대소문자·인코딩·통화)

같은 뜻인데 표기가 제각각인 값을 통일합니다. usa/USA 같은 대소문자 혼재, 깨진 인코딩(mojibake), $1,200 같은 통화·천단위 표기를 정돈합니다.

```
/data-prep 대소문자 통일하고 깨진 글자도 복구해줘
```

---

## 출력 옵션

정돈은 아래 항목을 자동으로 적용합니다. 특정 항목만 원하면 "대소문자만 통일해줘"처럼 자연어로 말하면 됩니다. 가로로 펼쳐진 표는 세로 형태로 바꿔 주고(wide→long), 한 시트에 표가 여러 개면 경계를 감지합니다. 숫자에 텍스트가 섞인 열은 함부로 바꾸지 않고 경고로만 알립니다.

| 정돈 항목 | 하는 일 | 예시 |
|-----------|---------|------|
| 헤더 행 추정 | 진짜 열 이름 줄을 찾아 위쪽 안내 행 제거 | 3번째 줄이 제목 → 헤더로 |
| 소계·빈 행·빈 열 제거 | 합계/소계·빈 행과 값 없는 열 삭제 | — |
| 날짜 정규화 | 한국 흔한 날짜 표기를 ISO로 | 2024년 1월 5일 → 2024-01-05 |
| 대소문자 통일 | 같은 값의 대소문자 변형을 최빈 원형으로 | usa / USA → USA |
| 인코딩 복구 | 깨진 글자(mojibake) 복원 | Ã© → é |
| 통화·천단위 숫자화 | 통화기호·콤마 제거(선행 0 보존) | $1,234 → 1234 |
| 중복 행 제거 | 완전히 같은 행 하나만 남김 | — |

---

## 팁

- **원본은 안전합니다**: 원본 파일은 절대 수정하지 않고, 정돈본은 항상 새 파일(`tidy_*.csv`)로 만듭니다.
- **애매하면 손대지 않습니다**: 우편번호·사번처럼 선행 0이 있는 값은 그대로 두고, 대소문자도 실제 변형이 있을 때만 통일합니다.
- **한국 엑셀 CSV도 그대로**: cp949로 저장된 한국 엑셀 CSV도 인코딩을 자동 판별해 읽습니다.
- **정돈 다음은 분석**: 정돈본이 준비되면 `/data-ask 이 데이터로 분석해줘`처럼 data-ask 스킬로 이어서 질문할 수 있습니다.

---

## 제한사항

- **통계 분석·질의는 범위 밖**: 평균·집계 같은 분석은 data-ask 스킬이 담당합니다. data-prep은 구조·값 정돈까지만 합니다.
- **입력은 CSV 계열**: CSV·TSV 등 텍스트 표(구분자 자동 감지)를 읽습니다. 엑셀은 CSV로 내보낸 파일을 쓰세요(cp949 자동 판별).
- **인큐베이션 단계**: 현재 실험(experimental) 상태의 스킬입니다. 중요한 데이터는 결과를 한 번 검토한 뒤 쓰세요.