ChatGPT CSV 분석 방법: 표 정리부터 결과 검산까지

CSV를 올렸더니 보기 좋은 매출 표가 나왔습니다. 그런데 그 표가 원본 6행을 모두 계산한 결과인지 어떻게 알 수 있을까요? 이 글에서는 같은 CSV를 내려받아 주문 65건·매출 3,225,000원이라는 정답과 직접 대조합니다. 파일 준비부터 질문, 수식, 틀린 결과를 고치는 방법까지 한 번에 따라 할 수 있습니다.

예제는 실제 고객이나 회사와 관계없는 합성 데이터입니다. 기존 연습 원본 6행을 그대로 사용했으며, 2026년 9월 6일 로컬 Python으로 다시 계산했습니다. 아래 정답은 독립 검산 결과입니다. 이번 개정에서 ChatGPT 화면에 업로드해 특정 모델이 같은 답을 내는지는 시험하지 않았습니다.

CSV 원본과 분석 결과를 대조하는 과정을 표현한 AI 생성 삽화
AI 생성 개념 삽화입니다. 실제 ChatGPT 실행 화면이 아닙니다.

준비물과 이번 실습의 도착점

ChatGPT에서 파일 첨부와 데이터 분석을 사용할 수 있는 계정, 아래 CSV, 결과를 대조할 이 페이지가 필요합니다. 코드를 설치하지 않아도 첫 실습을 할 수 있습니다. Python은 마지막의 독립 검산을 직접 실행하고 싶은 경우에만 사용합니다.

ChatGPT는 CSV 같은 파일을 분석하고 표·차트를 만들 수 있습니다. 파일 지원과 도구 사용 여부는 계정·모델·플랜·워크스페이스 설정에 따라 달라집니다. 첨부가 되더라도 분석 결과의 코드·출력·가정은 확인해야 합니다. OpenAI 데이터 분석 도움말에서 확인한 기능 범위입니다.

  • 입력: 헤더 1줄 + 데이터 6행, 총 5열의 CSV
  • 만들 결과: 원본 진단표, 전체 합계, 채널별 집계표
  • 마지막 확인: 채널 합계와 전체 합계가 같고, 주문 1건당 매출을 올바르게 계산했는지 확인

실제 업무 파일로 바꿔 연습할 때는 조직의 반출·업로드 규칙을 먼저 확인하고, 필요 없는 이름·전화번호·이메일 등을 제거하세요. 개인용 ChatGPT의 학습 사용 설정은 설정의 Data Controls에서 확인할 수 있습니다. 학습 사용을 끄는 것과 회사 자료 업로드 권한은 별개입니다. OpenAI Data Controls FAQ

1. 원본 CSV를 내려받고 6행을 확인하세요

원본 CSV 6행 다운로드 · CSV·Python 검산 코드·실행 결과 묶음 다운로드

CSV는 UTF-8, 쉼표 구분, 216바이트입니다. 브라우저에서 내용이 바로 열리면 파일로 저장한 뒤 ChatGPT에 첨부하세요. 다운로드가 어려우면 아래 코드 상자의 헤더부터 마지막 행까지 복사해 sample_orders.csv라는 UTF-8 텍스트 파일로 저장할 수 있습니다.

date,channel,orders,revenue_krw,refunds
2026-07-01,search,10,500000,1
2026-07-02,search,12,660000,0
2026-07-03,email,8,360000,1
2026-07-04,email,15,750000,2
2026-07-05,social,9,405000,0
2026-07-06,social,11,550000,1

한 행은 개별 주문 한 건이 아니라 해당 날짜·채널의 집계입니다. 예를 들어 첫 행은 7월 1일 검색 채널의 주문 10건과 매출 500,000원을 나타냅니다. refunds는 환불 금액이 아니라 환불 건수입니다.

합성 CSV 전체 원본 — 숫자 표시만 천 단위로 구분했습니다
날짜 채널 주문(건) 매출(원) 환불(건)
2026-07-01 search 10 500,000 1
2026-07-02 search 12 660,000 0
2026-07-03 email 8 360,000 1
2026-07-04 email 15 750,000 2
2026-07-05 social 9 405,000 0
2026-07-06 social 11 550,000 1

2. 합계보다 먼저 원본 진단을 요청하세요

새 대화에 CSV를 첨부하고 다음 문장을 붙여 넣습니다. 파일 이름과 첨부가 보이는지 먼저 확인하세요.

첨부한 CSV를 읽고 헤더를 제외한 데이터 행 수, 열 이름, 각 열의 자료형, 빈 셀 수, 완전히 같은 중복 행의 여분 개수, 날짜의 최솟값과 최댓값을 보여 주세요. 값 변경·행 삭제·추정 보충은 하지 마세요. 파일을 읽을 수 없거나 계산을 실행할 수 없으면 그 사실을 먼저 말해 주세요.

이 원본의 정답은 6행·5열, 빈 셀 0개, 완전 중복 여분 행 0개, 기간 2026-07-01~2026-07-06입니다. 주문·매출·환불은 정수로 읽혀야 합니다. 날짜는 처음에 문자열로 읽혀도 괜찮지만, 날짜 비교에 사용할 때 어떤 방식으로 변환했는지 확인하세요.

행 수가 2라고 나오면 앞의 두 줄만 복사했을 수 있습니다. 7이라면 헤더를 데이터에 포함했는지 확인하세요. 이 단계에서 숫자가 다르면 합계 분석을 진행하지 말고 파일과 읽은 행을 먼저 맞춥니다.

3. 계산할 수 있는 지표만 요청하세요

6행을 모두 사용해 orders, revenue_krw, refunds를 각각 합산하세요. 원본을 수정하거나 행을 제외하지 마세요. 주문 1건당 매출은 전체 revenue_krw 합계 ÷ 전체 orders 합계로 구하고 마지막에 소수 둘째 자리까지 표시하세요. 사용한 행 수, 계산식과 중간값을 보여 주세요. refunds는 건수이며 환불액 열이 없으므로 순매출을 추정하지 마세요.

계산할 값 원본으로 계산 정답
주문 합계 10 + 12 + 8 + 15 + 9 + 11 65건
매출 합계 500,000 + 660,000 + 360,000 + 750,000 + 405,000 + 550,000 3,225,000원
환불 건수 1 + 0 + 1 + 2 + 0 + 1 5건
주문 1건당 매출 3,225,000 ÷ 65 = 49,615.384615… 49,615.38원
순매출 환불 금액 열이 없어 계산 불가 값을 만들지 않음

각 행의 매출을 주문 수로 나눈 뒤 여섯 값을 단순 평균하면 49,166.67원이 됩니다. 이 값은 여섯 집계 행을 똑같은 비중으로 평균 낸 결과입니다. 주문 수가 행마다 다르므로, 이 실습에서 구하려는 전체 주문 1건당 매출은 합계끼리 나눈 49,615.38원입니다.

또한 매출 3,225,000원에서 환불 5건을 빼서 3,224,995원이라고 쓰면 단위가 맞지 않습니다. 환불액이 없다는 사실을 정확히 알려 주는 답이 이 데이터에 맞는 답입니다.

4. 채널별 합계가 전체와 이어지는지 확인하세요

channel별로 orders, revenue_krw, refunds를 합산하고 매출 내림차순으로 정렬하세요. 각 그룹에 포함된 원본 행 수도 적으세요. 세 그룹의 합계를 다시 더해 전체 주문·매출·환불과 같은지 확인해 주세요. 순매출이나 채널 수익성은 추정하지 마세요.

채널 원본 행 주문(건) 매출(원) 환불(건)
search 2 22 1,160,000 1
email 2 23 1,110,000 3
social 2 20 955,000 1
전체 6 65 3,225,000 5

검색 채널은 500,000 + 660,000 = 1,160,000원입니다. 이메일은 360,000 + 750,000 = 1,110,000원, 소셜은 405,000 + 550,000 = 955,000원입니다. 세 값을 다시 더하면 3,225,000원이 됩니다.

이 표에서 말할 수 있는 것은 제공된 합성 데이터에서 search의 매출 합계가 가장 크다는 사실입니다. 광고비·방문자 수·동일 기간 비교 자료가 없으므로 “검색 광고 효율이 가장 좋다”거나 “예산을 늘리자”는 판단까지 이어갈 수는 없습니다. 실제 업무에서는 그 판단에 필요한 열을 추가한 뒤 다시 분석해야 합니다.

차트가 필요하면 이 표가 맞은 뒤 “이 집계표를 사용해 채널별 매출 막대그래프를 만들고, 원 단위·0에서 시작하는 축·집계표를 함께 표시해 주세요”라고 요청하세요. 그림에 적힌 값이 위 표와 같은지 대조합니다.

5. 결과가 다를 때는 이 순서로 좁혀 보세요

  • 주문 22건·매출 1,160,000원이 나왔다면: 첫 두 행만 읽은 값과 같습니다. “분석한 6행을 수정 없이 모두 보여 주세요”라고 요청하고 원본과 대조합니다.
  • 매출이 문자로 읽혔다면: 숫자에 통화 기호나 불필요한 쉼표를 넣어 다시 저장했는지 확인합니다. 이 원본은 500000처럼 숫자만 저장합니다. 변환이 필요할 때는 변환 규칙과 실패 행을 먼저 확인하세요.
  • 49,166.67원이 나왔다면: 행별 평균을 다시 평균 냈는지 살핍니다. “전체 매출 합계 ÷ 전체 주문 합계로 다시 계산해 주세요”라고 요청합니다.
  • 순매출이 나왔다면: 어떤 열로 환불액을 구했는지 묻습니다. 이 CSV에는 해당 열이 없으므로 순매출은 계산 불가로 수정해야 합니다.
  • 파일을 읽을 수 없다고 나오면: 업로드 완료 여부와 현재 계정의 도구 사용 가능 여부를 확인하세요. 6행 원문을 붙여 넣어 텍스트로 질문할 수도 있지만, 이는 파일 첨부 경로를 검증한 것과는 다릅니다.

6. Excel 수식이나 Python으로 독립 검산하세요

CSV를 Excel이나 Google Sheets에서 열었을 때 헤더가 A1:E1, 데이터가 A2:E7에 놓여 있다면 다음 수식을 빈 셀에 넣습니다. 숫자 세 열이 숫자로 읽힌 상태인지 먼저 확인하세요.

확인할 값 수식 정답
주문 숫자가 있는 행 =COUNT(C2:C7) 6
빈 셀 =COUNTBLANK(A2:E7) 0
주문 합계 =SUM(C2:C7) 65
매출 합계 =SUM(D2:D7) 3,225,000
환불 건수 =SUM(E2:E7) 5
주문 1건당 매출 =ROUND(SUM(D2:D7)/SUM(C2:C7),2) 49,615.38
search 매출 =SUMIF(B2:B7,"search",D2:D7) 1,160,000

이번 개정에서는 Windows·Python 3.11.15에서 다운로드 묶음의 verify_sample_orders.py를 실제 실행했습니다. Python 표준 라이브러리의 csv로 읽고 정수 합계와 Decimal로 계산했습니다. 빈 값 보충·중복 삭제·행 제외 없이 6행 전부를 사용했으며, 평균은 마지막에 소수 셋째 자리에서 반올림해 둘째 자리까지 표시했습니다.

직접 실행하려면 Python 3.11 이상이 설치된 환경에서 묶음을 압축 해제하고, 그 폴더에서 아래 명령을 실행하세요. 별도 라이브러리나 API 키가 필요 없습니다.

python verify_sample_orders.py sample_orders.csv

실행 결과의 핵심은 다음과 같습니다. 실제 출력에는 실행 시각·Python 버전·파일 해시·채널별 값도 포함됩니다.

data_rows: 6
missing_cells: 0
duplicate_extra_rows: 0
excluded_rows: 0
orders: 65
revenue_krw: 3225000
refunds: 5
weighted_revenue_per_order_krw: "49615.38"
group_totals_equal_overall: true
net_revenue: null

파일이 원본과 같은지 확인할 때 사용할 SHA-256은 81fc71babd0c183a1903f70bc99b209cd0eb0075111ad8e38ae54edbaf1fcd45입니다. 텍스트를 복사해 다른 줄바꿈 방식으로 저장하면 계산값은 같아도 파일 해시는 달라질 수 있습니다.

자기 파일로 넘어가기 전에

이 예제에서 행 수, 전체 합계, 그룹 합계와 평균까지 맞췄다면 다음에는 자신의 파일에서 한 행의 의미와 지표의 정의부터 적어 보세요. “어떤 자료를 넣었고, 어떤 행을 계산했으며, 무엇은 계산할 수 없는가”를 설명할 수 있어야 결과를 다른 사람에게 전달하기도 쉽습니다.

빈 행과 중복이 섞인 자료라면 CSV 빈 행·중복 행 점검 실습으로 이어가세요. 파일 상태에 따라 시작점을 고르려면 AI 데이터 분석·엑셀 시작 가이드를 참고할 수 있습니다.


개정일: 2026-09-06
자료: AI 플레이집의 기존 합성 CSV 6행 원본. 실제 매출·고객 데이터가 아닙니다.
검증 범위: 공식 도움말 확인, 원본 CSV의 로컬 Python 재계산, 다운로드 파일·공개 본문 대조. ChatGPT 모델별 실행 및 운영자의 수동 재현은 이번 개정에서 확인하지 않았습니다.
AI 활용: 원고 개정과 검산 코드 작성에 AI를 사용했습니다.
정정: 이전 글에서 일부 2행만 제시하던 예제를 전체 6행과 다운로드로 보완하고, 확인 근거가 없는 “운영자 검토 완료” 문구를 삭제했습니다. 오류는 정정 정책에 따라 접수합니다.