본문으로 건너뛰기

pandas 100제: 판다스 연습문제와 풀이 · 1장

시작하기: 코랩·주피터 실습 환경과 이 책 사용법

pandas 100제를 풀기 위한 구글 코랩·주피터 랩·VS Code 실습 환경 준비, 버전 확인, 노트북 사용법, 버전별 출력 차이와 자주 나는 오류 해결법

11분 읽기

이 장의 목차 10개

문제를 풀기 전 준비 운동 장입니다. 파이썬을 한 번도 설치해 본 적이 없어도 괜찮습니다. 구글 코랩을 쓰면 설치 없이 브라우저만으로 5분 안에 첫 코드를 실행할 수 있습니다. 이미 주피터나 VS Code를 쓰고 있다면 "버전 확인" 절만 실행해 보고 001번으로 넘어가세요.

이 책으로 무엇을 할 수 있나요

데이터 분석에서 실제로 가장 자주 쓰는 pandas 문법을 100개의 짧은 문제로 손에 익히는 책입니다. 한 문제는 보통 한두 줄 코드로 풀리고, 장마다 같은 작은 표를 계속 다루기 때문에 결과가 맞았는지 눈으로 확인하기 쉽습니다. 문제마다 힌트 보기와 정답 보기가 접혀 있으니 먼저 직접 써 보고, 막힐 때 하나씩 펼치세요.

장다루는 것데이터
001–010Series와 DataFrame 만들기직접 만드는 Series·DataFrame
011–020데이터 살펴보기학생 8명 성적표
021–030열과 행 선택하기학생 8명 성적표
031–040조건으로 거르기성적표 + 세 과목 합계
041–050정렬과 순위성적표 + 세 과목 합계
051–060결측치와 중복빈 값·중복이 섞인 명단
061–070문자열과 날짜고객 주문 기록
071–080그룹별 집계카페 매출
081–090합치기와 모양 바꾸기학생·동아리·점수 표
091–100실전 종합성적표 + 일별 방문자
보너스그래프 그리기 10제위 데이터 다시 쓰기
부록핵심 문법 치트시트—

실습 환경 고르기

환경준비할 것이런 분께
구글 코랩 (추천)구글 계정만 있으면 됨처음 시작하는 분, 회사·학교 PC처럼 설치가 어려운 경우
주피터 랩 (내 컴퓨터)파이썬과 패키지 설치인터넷 없이, 내 파일로 계속 연습하고 싶은 분
VS Code파이썬 + 확장 2개이미 VS Code로 코딩하는 분

어느 환경이든 문제의 코드와 결과는 같습니다. 고민된다면 코랩으로 시작하세요.

방법 1. 구글 코랩에서 시작하기

  1. 브라우저(크롬 권장)에서 colab.research.google.com에 접속해 구글 계정으로 로그인합니다.
  2. 처음 뜨는 창에서 새 노트를 누르거나, 메뉴에서 파일 → 새 노트를 고릅니다. 영어 화면에서는 New notebook 입니다.
  3. 회색 칸(코드 셀)에 아래 "버전 확인" 코드를 붙여 넣고 Shift + Enter를 누릅니다. 처음 실행할 때는 구글 서버(런타임)에 연결하느라 몇 초 걸립니다.
  4. 셀 아래에 결과가 나오면 준비 끝입니다. 코랩에는 pandas와 matplotlib이 이미 설치되어 있어 따로 설치하지 않아도 됩니다.

방법 2. 내 컴퓨터에 설치하기 (주피터 랩)

  1. 파이썬 설치 — python.org에서 3.12 이상 버전을 내려받아 설치합니다(pandas 3은 파이썬 3.11 이상이 필요합니다). Windows 설치 첫 화면 아래쪽의 Add python.exe to PATH를 꼭 체크하세요.
  2. 가상환경 만들고 패키지 설치 — 연습용 폴더를 하나 만들고, 그 폴더에서 터미널(Windows는 PowerShell, macOS는 터미널 앱)을 열어 아래 명령을 한 줄씩 실행합니다. 가상환경(pandas100 폴더)은 이 책 전용 파이썬 공간이라 다른 프로그램과 패키지 버전이 섞이지 않습니다.
  3. 주피터 랩 실행 — 마지막 줄 jupyter lab을 실행하면 브라우저에 주피터 랩이 열립니다. Notebook → Python 3을 눌러 새 노트북을 만들고 "버전 확인" 코드를 실행하세요.
  4. 다음에 다시 할 때 — 같은 폴더에서 두 번째 줄(가상환경 켜기)과 jupyter lab만 실행하면 됩니다.

Windows (PowerShell)

터미널py -m venv pandas100
pandas100\Scripts\activate
pip install pandas matplotlib jupyterlab koreanize-matplotlib setuptools
jupyter lab

macOS · Linux (터미널)

터미널python3 -m venv pandas100
source pandas100/bin/activate
pip install pandas matplotlib jupyterlab koreanize-matplotlib setuptools
jupyter lab

가상환경이 켜지면 터미널 줄 앞에 (pandas100)이 붙습니다. 이 표시가 있는 상태에서 pip install과 jupyter lab을 실행해야 합니다.

VS Code를 쓴다면

위 1~2번까지 한 뒤 VS Code의 확장(Extensions)에서 Python과 Jupyter를 설치합니다. practice.ipynb처럼 확장자가 .ipynb인 파일을 새로 만들고, 오른쪽 위 커널 선택(Select Kernel)에서 방금 만든 pandas100 가상환경을 고르면 됩니다.

아나콘다를 이미 설치했다면

Anaconda에는 pandas·matplotlib·주피터가 들어 있어 Anaconda Navigator에서 JupyterLab을 열면 바로 쓸 수 있습니다. 설치한 지 오래됐다면 버전이 낮을 수 있으니 아래 버전 확인을 먼저 해 보세요.

버전 확인: 첫 코드 실행하기

어느 환경이든 새 노트북의 첫 셀에 아래 코드를 실행해 보세요.

Pythonimport pandas as pd
import numpy as np
import matplotlib

print('pandas', pd.__version__)
print('numpy', np.__version__)
print('matplotlib', matplotlib.__version__)

pd.DataFrame({'과목': ['국어', '수학'], '점수': [90, 85]})
결과pandas 3.1.1
numpy 2.5.4
matplotlib 3.11.2
   과목  점수
0  국어    90
1  수학    85

버전 숫자는 환경마다 다를 수 있습니다. 오류 없이 버전 세 줄과 작은 표가 나오면 성공입니다. 노트북에서는 마지막 줄의 표가 격자 모양으로 보입니다.

노트북이 처음이라면

코랩, 주피터 랩, VS Code는 모두 노트북 방식으로 코드를 실행합니다. 이 책을 푸는 데 필요한 규칙은 다섯 가지뿐입니다.

  • 셀 하나가 코드 한 덩어리입니다. Shift + Enter로 실행하고 다음 셀로 넘어갑니다.
  • 셀의 마지막 줄이 값이면 그 값이 셀 아래에 출력됩니다. 중간 줄의 결과도 보고 싶으면 print()로 감싸세요.
  • 셀은 화면에 놓인 순서가 아니라 실행한 순서대로 이어집니다. 셀 왼쪽의 [3] 같은 번호가 실행 순서입니다.
  • 표(DataFrame)는 노트북에서 격자 모양 표로 보입니다. 이 책은 글자 모양으로 보여 주지만 값은 같습니다.
  • 꼬였다 싶으면 런타임(커널) 다시 시작 → 위에서부터 모두 실행이 가장 확실한 해결책입니다.
노트북 셀 세 개와 NameError 예시 — 셀은 실행한 순서대로 이어진다
노트북 셀 세 개와 NameError 예시 — 셀은 실행한 순서대로 이어진다

이 책을 푸는 순서

  1. 장 첫머리의 이 장에서 익히는 것과 그림을 먼저 봅니다. 그림은 그 장에서 가장 헷갈리는 개념을 실제 데이터로 그린 것입니다.
  2. 준비 코드를 노트북 첫 셀에 붙여 넣어 실행합니다. 장마다 있는 실습 노트북을 내려받으면 준비 코드와 문제가 미리 들어 있고 답 칸만 비어 있습니다.
  3. 문제를 읽고 코드를 직접 타이핑해서 풉니다. 복사해 붙여 넣는 것보다 손으로 쓰는 쪽이 훨씬 오래 남습니다.
  4. 막히면 힌트 보기, 그래도 어려우면 정답 보기를 펼쳐 코드·실행 결과·풀이를 확인합니다.
  5. 내 결과와 책의 결과를 비교합니다. 숫자는 같은데 자료형 표기나 칸 간격만 다르면 버전 차이입니다(아래 표).
  6. 장 끝의 요약표와 점검 질문으로 마무리합니다. 문법이 떠오르지 않을 때는 부록 치트시트를 찾아보세요.

전체 문제를 한 파일로 받고 싶다면 전체 실습 노트북 (.ipynb)을 내려받으세요.

출력이 책과 조금 다를 때

이 책의 실행 결과는 pandas 3.1.1(numpy 2.5.4)으로 만들었고, 모든 정답 코드가 pandas 2.3.3, 2.2.2 에서도 오류 없이 같은 값을 내는 것을 확인했습니다. 버전에 따라 값은 같아도 표시가 다를 수 있습니다. 문제 해설에도 차이가 있는 곳마다 다른 버전의 출력을 함께 실었습니다.

이렇게 보이면이유괜찮을까
자료형이 str 대신 objectpandas 3부터 문자열 열의 기본 자료형이 str로 바뀜. pandas 2는 object같은 값입니다
문자열 열의 빈 값이 NaN 대신 Nonepandas 2의 object 열은 넣은 그대로 None을 표시둘 다 isna()가 결측치로 셉니다
날짜가 datetime64[us] 대신 datetime64[ns]pandas 3은 날짜를 기본으로 마이크로초 단위로 저장. pandas 2는 나노초날짜 계산 결과는 같습니다
숫자 하나가 np.int64(95) 대신 95numpy 2부터 숫자 하나를 자료형과 함께 표시. numpy 1은 값만같은 정수입니다
표 칸 간격, 긴 표가 ...로 줄어듦화면 폭과 표시 설정 차이값이 같으면 됩니다

코랩에 미리 설치된 pandas 버전은 시기마다 다릅니다. 위 버전 확인에서 pandas가 2.2보다 낮게 나오면 pip install -U pandas(코랩은 !pip install -U pandas 실행 뒤 런타임 → 세션 다시 시작)로 올리는 것을 권합니다.

자주 만나는 오류와 해결법

오류 메시지는 무섭게 생겼지만 마지막 줄만 읽으면 대부분 원인이 보입니다.

마지막 줄의 메시지흔한 원인해결
ModuleNotFoundError: No module named 'pandas'설치하지 않았거나, 설치한 곳과 다른 파이썬(커널)에서 실행가상환경을 켜고 pip install pandas. VS Code는 커널 선택 확인
NameError: name 'df' is not defined준비 코드를 실행하지 않았거나 런타임이 다시 시작됨준비 코드 셀부터 다시 실행
KeyError: 'Math'열 이름 오타, 대소문자 차이df.columns로 정확한 이름 확인
ValueError: The truth value of a Series is ambiguous조건 두 개를 and, or로 묶음&(그리고)와 세로 막대 기호(또는)로 바꾸고 조건마다 괄호 (032·033번)
SyntaxError: invalid syntax괄호·따옴표 짝이 안 맞음, 쉼표 빠짐메시지가 가리키는 줄과 바로 윗줄 확인
SettingWithCopyWarning(pandas 2), ChainedAssignmentError(pandas 3)df[조건]['열'] = 값처럼 두 번 나눠 대입df.loc[조건, '열'] = 값 한 번에 대입
그래프의 한글이 □□□matplotlib 기본 글꼴에 한글이 없음koreanize-matplotlib 사용(보너스 장 준비 코드)

준비 완료 점검

  • 버전 확인 코드가 오류 없이 실행되고, pandas 버전이 2.2 이상이다.
  • 마지막 줄의 작은 표(과목·점수)가 셀 아래에 보인다.
  • 노트북을 저장했다가 다시 열어 봤다. 다시 열면 변수가 비어 있으므로 셀을 다시 실행해야 한다는 것도 확인했다.

세 가지가 모두 됐다면 준비 끝입니다. 다음 장의 001번부터 시작하세요.

전체 메뉴