06단계 · 실전으로 넘어가기

제출 파일 규격 직접 확인하기

`index=False` 를 빠뜨렸을 때 생기는 열을 눈으로 보고, 규격 위반을 스스로 찾는다.

먼저 알아볼게요

코드로 이동 ↓

공식 가이드가 2유형에서 금지한 것들: 자동 생성되는 index 칼럼, 예측 결과 외의 칼럼, 지정되지 않은 파일명, 별도 디렉터리 지정.

to_csv("result.csv") 를 그냥 쓰면 인덱스가 이름 없는 첫 열로 저장된다. 다시 읽으면 Unnamed: 0 이라는 열이 생겨 있다. 눈으로 확인하면 두 번 다시 잊지 않는다.

index=False 를 주면 그 열이 사라진다. 제출 규격에 인덱스 열이 없다면 꼭 지정한다.

ID 열을 같이 낸 파일도 규격 위반이다. 발문이 "예측 결과 칼럼 1개" 라고 하면 정말 한 열만 낸다. 다만 발문이 ID 를 함께 요구하면 그때는 그 지시를 따른다 — 규칙은 발문이다.

가이드는 "답안은 여러 번 제출 가능하며, 마지막 제출된 코드로 생성된 CSV 파일이 채점 대상" 이라고 적고 있다. 마지막에 돌린 코드가 무엇이었는지가 곧 제출물이다.

이렇게 써요
import pandas as pd

pd.DataFrame({"pred": [1, 2]}).to_csv("demo.csv")
print(open("demo.csv").read())
기억할 한 가지

index=False 를 빠뜨리면 Unnamed: 0 이 붙는다. 저장한 파일은 항상 다시 읽어서 확인한다.

이 단계의 수업
  1. 1help 와 dir — 함수 사용법 찾아보기
  2. 2파일 확인하기
  3. 3출력 형식과 반올림 함정
  4. 4제출 파일 규격 직접 확인하기
  5. 5세 유형을 한 번에 — 그리고 실전 문항으로
직접 해보기

pred = [0.12, 0.85, 0.44] 로 ① index=False 없이 저장한 파일의 열 이름 ② index=False 로 저장한 파일의 열 이름 ③ 두 파일의 shape ④ ID 열을 같이 넣어 저장한 파일의 열 이름을 출력하세요.

내 코드 Python
Python 준비 중… 처음 한 번만 내려받아요

들여쓰기: Tab · 편집기에서 나가기: Esc 다음 Tab

실행 결과

실행하면 코드가 출력한 내용이 여기에 나타나요.

막혔을 때

풀이와 비교하기

내 코드와 한 줄씩 비교해 보세요. 풀이를 보는 것만으로 완료되지는 않아요.

import pandas as pd

pred = [0.12, 0.85, 0.44]
pd.DataFrame({"pred": pred}).to_csv("bad.csv")
pd.DataFrame({"pred": pred}).to_csv("result.csv", index=False)
print(pd.read_csv("bad.csv").columns.tolist())
print(pd.read_csv("result.csv").columns.tolist())
print(pd.read_csv("bad.csv").shape, pd.read_csv("result.csv").shape)
pd.DataFrame({"고객ID": ["C1", "C2", "C3"], "pred": pred}).to_csv("two.csv", index=False)
print(pd.read_csv("two.csv").columns.tolist())