pandas 100제: 판다스 연습문제와 풀이 · 1장
시작하기: 코랩·주피터 실습 환경과 이 책 사용법
pandas 100제를 풀기 위한 구글 코랩·주피터 랩·VS Code 실습 환경 준비, 버전 확인, 노트북 사용법, 버전별 출력 차이와 자주 나는 오류 해결법
이 장의 목차 10개
문제를 풀기 전 준비 운동 장입니다. 파이썬을 한 번도 설치해 본 적이 없어도 괜찮습니다. 구글 코랩을 쓰면 설치 없이 브라우저만으로 5분 안에 첫 코드를 실행할 수 있습니다. 이미 주피터나 VS Code를 쓰고 있다면 "버전 확인" 절만 실행해 보고 001번으로 넘어가세요.
이 책으로 무엇을 할 수 있나요
데이터 분석에서 실제로 가장 자주 쓰는 pandas 문법을 100개의 짧은 문제로 손에 익히는 책입니다. 한 문제는 보통 한두 줄 코드로 풀리고, 장마다 같은 작은 표를 계속 다루기 때문에 결과가 맞았는지 눈으로 확인하기 쉽습니다. 문제마다 힌트 보기와 정답 보기가 접혀 있으니 먼저 직접 써 보고, 막힐 때 하나씩 펼치세요.
| 장 | 다루는 것 | 데이터 |
|---|---|---|
| 001–010 | Series와 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. 구글 코랩에서 시작하기
- 브라우저(크롬 권장)에서 colab.research.google.com에 접속해 구글 계정으로 로그인합니다.
- 처음 뜨는 창에서 새 노트를 누르거나, 메뉴에서 파일 → 새 노트를 고릅니다. 영어 화면에서는 New notebook 입니다.
- 회색 칸(코드 셀)에 아래 "버전 확인" 코드를 붙여 넣고 Shift + Enter를 누릅니다. 처음 실행할 때는 구글 서버(런타임)에 연결하느라 몇 초 걸립니다.
- 셀 아래에 결과가 나오면 준비 끝입니다. 코랩에는 pandas와 matplotlib이 이미 설치되어 있어 따로 설치하지 않아도 됩니다.
방법 2. 내 컴퓨터에 설치하기 (주피터 랩)
- 파이썬 설치 — python.org에서 3.12 이상 버전을 내려받아 설치합니다(pandas 3은 파이썬 3.11 이상이 필요합니다). Windows 설치 첫 화면 아래쪽의 Add python.exe to PATH를 꼭 체크하세요.
- 가상환경 만들고 패키지 설치 — 연습용 폴더를 하나 만들고, 그 폴더에서 터미널(Windows는 PowerShell, macOS는 터미널 앱)을 열어 아래 명령을 한 줄씩 실행합니다. 가상환경(
pandas100폴더)은 이 책 전용 파이썬 공간이라 다른 프로그램과 패키지 버전이 섞이지 않습니다. - 주피터 랩 실행 — 마지막 줄
jupyter lab을 실행하면 브라우저에 주피터 랩이 열립니다. Notebook → Python 3을 눌러 새 노트북을 만들고 "버전 확인" 코드를 실행하세요. - 다음에 다시 할 때 — 같은 폴더에서 두 번째 줄(가상환경 켜기)과
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)는 노트북에서 격자 모양 표로 보입니다. 이 책은 글자 모양으로 보여 주지만 값은 같습니다.
- 꼬였다 싶으면 런타임(커널) 다시 시작 → 위에서부터 모두 실행이 가장 확실한 해결책입니다.
이 책을 푸는 순서
- 장 첫머리의 이 장에서 익히는 것과 그림을 먼저 봅니다. 그림은 그 장에서 가장 헷갈리는 개념을 실제 데이터로 그린 것입니다.
- 준비 코드를 노트북 첫 셀에 붙여 넣어 실행합니다. 장마다 있는 실습 노트북을 내려받으면 준비 코드와 문제가 미리 들어 있고 답 칸만 비어 있습니다.
- 문제를 읽고 코드를 직접 타이핑해서 풉니다. 복사해 붙여 넣는 것보다 손으로 쓰는 쪽이 훨씬 오래 남습니다.
- 막히면 힌트 보기, 그래도 어려우면 정답 보기를 펼쳐 코드·실행 결과·풀이를 확인합니다.
- 내 결과와 책의 결과를 비교합니다. 숫자는 같은데 자료형 표기나 칸 간격만 다르면 버전 차이입니다(아래 표).
- 장 끝의 요약표와 점검 질문으로 마무리합니다. 문법이 떠오르지 않을 때는 부록 치트시트를 찾아보세요.
전체 문제를 한 파일로 받고 싶다면 전체 실습 노트북 (.ipynb)을 내려받으세요.
출력이 책과 조금 다를 때
이 책의 실행 결과는 pandas 3.1.1(numpy 2.5.4)으로 만들었고, 모든 정답 코드가 pandas 2.3.3, 2.2.2 에서도 오류 없이 같은 값을 내는 것을 확인했습니다. 버전에 따라 값은 같아도 표시가 다를 수 있습니다. 문제 해설에도 차이가 있는 곳마다 다른 버전의 출력을 함께 실었습니다.
| 이렇게 보이면 | 이유 | 괜찮을까 |
|---|---|---|
자료형이 str 대신 object | pandas 3부터 문자열 열의 기본 자료형이 str로 바뀜. pandas 2는 object | 같은 값입니다 |
문자열 열의 빈 값이 NaN 대신 None | pandas 2의 object 열은 넣은 그대로 None을 표시 | 둘 다 isna()가 결측치로 셉니다 |
날짜가 datetime64[us] 대신 datetime64[ns] | pandas 3은 날짜를 기본으로 마이크로초 단위로 저장. pandas 2는 나노초 | 날짜 계산 결과는 같습니다 |
숫자 하나가 np.int64(95) 대신 95 | numpy 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번부터 시작하세요.