연습용 CSV를 ChatGPT에 올리고 열 이름 확인하기: 초보자 첫 데이터 점검

CSV를 처음 올렸다면 합계보다 열 이름과 행 수부터 확인하세요. 파일을 잘못 읽은 채 계산하면 뒤의 표와 숫자가 모두 달라질 수 있습니다. 이번 실습은 원본을 고치지 않고 6행·5열, 첫 값, 빈 셀, 공백 셀, 중복 행을 확인하는 데서 끝납니다.

자료는 실제 고객 정보가 없는 교육용 표입니다. 이전 본문에 있던 여섯 행을 한 CSV로 복원했습니다. 앞부분과 뒷부분이 서로 다른 파일을 가리키던 문제를 없애고, 아래의 모든 질문과 정답을 같은 파일에 맞췄습니다.

1. 이 파일 하나로 시작하세요

실습 원본 CSV 6행 내려받기
원본·복사용 질문·Python 검산 코드·검산 결과 묶음 내려받기

준비물은 파일을 첨부할 수 있는 ChatGPT 환경과 CSV를 열어 볼 프로그램입니다. 파일 첨부나 실행 도구의 제공 여부는 계정과 환경에 따라 다를 수 있습니다. 연습 파일을 먼저 사용하고 개인정보나 회사 자료를 그대로 올리지 마세요.

CSV는 표의 값을 글자로 저장하는 형식입니다. 첫 줄은 각 열의 이름인 거래처·상품·수량·단가·상태이며, 그다음부터 데이터 여섯 줄이 이어집니다. 파일은 UTF-8 BOM으로 저장했습니다. 한글이 깨지면 파일 가져오기에서 문자 인코딩을 UTF-8, 구분 기호를 쉼표로 지정하세요.

2. 내려받은 원본의 여섯 행을 먼저 봅니다

이 글 전체가 사용하는 하나의 원본. 맨 왼쪽 데이터 행 번호는 설명용이며 CSV의 별도 열이 아닙니다.
데이터 행 거래처 상품 수량 단가 상태
1 가람문구 노트 2 3000 완료
2 나래상점 1 1500 완료
3 다온서점 파일 "" — 빈 문자열 2500 완료
4 가람문구 노트 2 3000 완료
5 새봄마켓 봉투 " " — 공백 1칸 1200 대기
6 별빛서점 클립 3 900 완료

표의 """ "는 보이지 않는 차이를 설명하는 표기입니다. 실제 CSV에는 행 3의 수량에 문자가 없고, 행 5의 수량에 공백 문자 한 칸만 들어 있습니다. 따옴표나 ‘빈 문자열’이라는 설명 글자가 저장된 것은 아닙니다.

행 번호는 제목 줄을 빼고 셉니다. 따라서 데이터 행 1은 CSV 파일의 두 번째 줄입니다. 첫 데이터 값은 가람문구·노트·2·3000·완료입니다. 이 다섯 값이 달라지면 다른 파일을 읽거나 열을 잘못 나눈 것은 아닌지 먼저 확인하세요.

3. 계산하지 말고 구조만 요청합니다

새 대화에서 내려받은 CSV를 추가한 뒤 첨부 목록의 파일 이름을 확인합니다. 업로드된 파일 이름이 날짜가 붙은 이름이어도 이 페이지에서 받은 6행 원본이면 됩니다. 복사용 묶음 안의 파일 이름은 csv_structure_six_rows.csv입니다.

첨부한 이 글의 6행 연습 CSV를 수정하거나 합계를 계산하지 말고 구조만 점검해 주세요.
1. 열 이름을 원본 순서대로 적고, 제목 행을 뺀 데이터 행 수와 각 행의 열 수를 확인하세요.
2. 첫 데이터 행의 값을 열 이름과 나란히 보여 주세요.
3. 수량 열에서 원래 길이가 0인 셀과 공백 문자만 있는 셀을 구분하고 데이터 행 번호를 적으세요.
4. 모든 열의 원래 값이 같은 완전 중복 행을 그룹으로 묶고, 첫 행을 남길 때의 여분 행 수를 적으세요.
5. 원문 값과 자동 자료형 추론을 구분하세요. 원본을 읽는 과정에서 빈값과 공백이 같은 결측값으로 바뀌었다면 그 한계를 밝히고 원문 문자열로 다시 확인하세요.
원본을 덮어쓰거나 행을 삭제하지 마세요. 빈 수량을 0으로 채우지 마세요. 파일을 읽거나 코드를 실행할 수 없으면 그 사실을 먼저 알려 주세요.

OpenAI의 파일 작업 안내는 원본 자료, 원하는 구조와 검토 기준을 함께 제시하고 결과에서 고칠 부분을 구체적으로 요청하도록 설명합니다. 위 질문도 ‘분석해 줘’라는 말에 그치지 않고, 확인할 항목과 바꾸지 않을 것을 지정합니다.

4. 같은 파일의 정답표와 맞춰 봅니다

확인 항목 이 파일의 정답 원본에서 확인하는 방법
열 이름과 개수 거래처·상품·수량·단가·상태, 5개 첫 줄을 왼쪽부터 같은 순서로 읽기
데이터 행 수 6행 제목 행을 빼고 여섯 기록만 세기
각 행의 열 수 모든 행이 5열 빈 수량도 하나의 칸으로 남아 있는지 확인
첫 데이터 행 가람문구·노트·2·3000·완료 첫 행의 다섯 값과 열 이름을 나란히 대조
완전히 빈 셀 행 3의 수량, 1개 원래 문자열 길이가 0인지 확인
공백만 있는 셀 행 5의 수량, 1개 원래 길이 1, 앞뒤 공백 제거 뒤 길이 0인지 확인
공백 제거 뒤 빈 셀 행 3과 행 5의 수량, 총 2개 완전 빈 셀과 공백 셀을 합쳐 세되 원본은 보존
완전히 같은 행 행 1·4, 한 그룹 거래처 하나가 아니라 다섯 열 전체를 비교
중복 여분 행 첫 행을 남긴다면 행 4, 1행 같은 두 행을 모두 ‘여분 2행’으로 세지 않기

CSV의 원래 값과 도구가 추정한 자료형은 구분해야 합니다. 숫자처럼 보이는 문자열을 어떤 도구는 정수로 읽고, 빈칸을 자동 결측값으로 바꿀 수 있습니다. 이번 정답의 빈 셀·공백 셀 구분은 CSV 원문 문자열을 기준으로 합니다. 수량이 비었다는 이유만으로 0을 넣거나 상태가 ‘완료’라는 이유로 수량이 확인됐다고 판단하지 않습니다.

5. 결과가 다르면 한 부분씩 다시 묻습니다

아래 내용은 오류가 생겼을 때 사용할 교육용 상황과 수정 질문입니다. 실제 ChatGPT가 이번 실행에서 이런 답을 했다는 기록은 아닙니다.

  • 7행이라고 나왔다면: “제목 행을 데이터에서 제외하고 여섯 기록에 1부터 번호를 붙여 주세요.” 제목과 데이터의 구분부터 맞춥니다.
  • 빈칸이 1개라고만 나왔다면: “원래 길이 0인 셀과 공백만 남은 셀을 구분하고 각각 행 번호를 보여 주세요.” 행 5의 공백이 빠졌는지 확인합니다.
  • 빈 수량 두 개가 모두 0으로 바뀌었다면: “파일을 수정하지 말고 행 3의 빈 문자열과 행 5의 공백을 원문대로 확인해 주세요.” 이미 저장한 결과보다 원본 파일에서 다시 시작합니다.
  • 중복 2건이라고 나왔다면: “중복에 참여한 행은 1·4 두 행인지, 첫 행을 남겼을 때 여분은 한 행인지 나눠 적어 주세요.” 서로 다른 집계 기준을 혼동하지 않습니다.
  • 5행이나 다른 열 이름이 나왔다면: 이 글의 6행 원본과 다른 실습 파일을 섞었는지 확인합니다. 첨부 이름과 첫 데이터 행을 다시 보여 달라고 요청하세요.

파일을 읽는 과정에서 빈 문자열과 공백을 이미 같은 값으로 바꿨다면 원문 문자열을 보존하는 방식으로 다시 읽어야 합니다. 변환된 결과표만으로 두 값의 원래 차이를 복구했다고 단정하면 안 됩니다.

6. Python으로 원본을 독립 검산할 수 있습니다

코드는 선택 사항입니다. 표와 정답을 대조하는 것만으로도 입문 실습을 진행할 수 있습니다. 코드로 확인하고 싶다면 위 묶음의 압축을 풀고 Python 3.10 이상이 있는 환경에서 아래 명령을 실행하세요. 별도 라이브러리나 API 키는 필요 없습니다.

python verify_csv_structure.py csv_structure_six_rows.csv

이 검산기는 원본을 읽기만 합니다. 자동 자료형 변환이나 공백 제거를 원본에 적용하지 않고, 빈 문자열·공백 문자열·모든 열이 같은 행을 각각 계산합니다. 이번 개정에서 실제 실행한 환경은 Python 3.11.15이며 출력의 핵심은 다음과 같습니다.

column_count: 5
data_rows: 6
all_rows_have_header_width: true
exact_empty_cells: [행 3 / 수량 / 길이 0]
whitespace_only_cells: [행 5 / 수량 / 길이 1]
empty_after_trim_total: 2
duplicate_row_groups: [[1, 4]]
duplicate_extra_rows: 1
source_modified: false
passed: true

위 출력은 읽기 쉽게 핵심만 옮긴 것입니다. 묶음의 verification.json에는 실제 실행 시각, Python 버전, 열 이름과 파일 해시를 포함한 전체 출력이 있습니다. 원본 CSV의 SHA-256은 921b72bd0132ad075cb2d396a59e3bc9f6326c4ece7bee2c5795e8d5198ae736입니다. 프로그램에서 다시 저장해 줄바꿈이나 인코딩이 바뀌면 값이 같아도 파일 해시는 달라질 수 있습니다.

이 실습은 여기서 완료합니다

열 다섯 개와 첫 값이 맞고, 데이터 여섯 행이 유지되며, 행 3의 빈 수량과 행 5의 공백 수량을 구분했다면 첫 점검은 끝입니다. 중복 행 1·4와 여분 한 행을 설명할 수 있어야 합니다. 이번 단계에서는 행을 지우거나 수량 합계·매출을 계산하지 않습니다. 빈 수량을 어떻게 처리할지 결정되지 않았기 때문입니다.

다음에는 빈칸과 중복을 판단하는 별도 5행 실습으로 이어가세요. 다음 글은 이 CSV와 다른 원본을 사용하므로 각 글에서 지정한 파일을 새로 받습니다. 파일 상태별로 다른 작업을 고르려면 데이터 분석·엑셀 시작 안내를 참고하세요.


개정일: 2026-09-06
자료 출처: 기존 본문의 교육용 6행 표를 CSV로 복원했습니다. 실재 거래처나 실제 주문 기록이 아닙니다.
검증 범위: 기존 표·CSV·전체 본문 대조, 로컬 Python 실행, 공개 다운로드와 링크 확인. ChatGPT 모델 실행은 이번 개정에서 확인하지 않았습니다. 운영자의 수동 재현을 완료했다는 의미도 아닙니다.
AI 활용: 원고 개정과 검산 코드 작성에 AI를 사용했습니다.
정정 내용: 앞부분의 2행 주문 예시와 뒷부분의 6행 표가 섞이던 구성을 하나의 6행 파일로 통일하고, 빠져 있던 원본 다운로드·동일 파일 기준 정답·검산 코드를 추가했습니다. 이전 생성 삽화는 실제 파일 확인 근거를 대신하지 않으므로 이번 본문에서 제외했습니다.
정정 요청: 정정 정책에 따라 알려 주세요.