NumPy, Pandas 기초 (0) - 실습 환경 세팅
시리즈가 누구를 위한 글인지, 여섯 편이 어떤 순서로 진행되는지, 그리고 Google Colab 실습 환경을 정리한 0편입니다.
NumPy와 pandas를 기초부터 정리하는 시리즈의 0편입니다. 시리즈 소개와 실습 환경 준비를 다루며, 본문은 1편부터 시작합니다.
누구를 위한 시리즈인가
이 시리즈는 다음에 해당하는 학생을 독자로 생각하고 씁니다.
- Python 기본 문법(변수, 리스트, 함수, for문)은 배웠지만 데이터 분석은 처음인 사람
import numpy as np를 따라 치기는 했지만 왜 쓰는지는 설명하지 못하는 사람- ML 공부를 시작하기 전에 데이터 다루는 기본기부터 잡고 싶은 사람
- 대학에서 데이터 관련 과목을 들은 학생
반대로 Python 문법 자체가 처음이라면, 기초 문법을 먼저 공부하고 오는 것을 권합니다.
어떻게 진행하는가
여섯 편으로 진행하며, 순서는 아래와 같습니다.
| 편 | 주제 |
|---|---|
| (1) | 왜 리스트로는 안 되는가: 벡터화와 dtype |
| (2) | NumPy 배열 다루기: 인덱싱, axis, 브로드캐스팅 |
| (3) | Series와 DataFrame, 데이터 첫 점검 |
| (4) | 원하는 데이터만 골라 바꾸기: loc, 마스크, 접근자 |
| (5) | 쪼개고 세고 합치기: groupby, reindex, merge |
| (6) | 조용히 틀리는 것들: 결측치, dtype 함정, 버전 관리 |
진행 방식은 세 가지 원칙을 따릅니다.
- 예시 데이터를 하나로 통일합니다. 시리즈 내내 한 학생의 대학교 성적 CSV 하나만 씁니다. 편마다 새 데이터에 적응할 필요 없이 개념에만 집중하기 위해서입니다.
- 문법 나열보다 동작 원리를 다룹니다. “왜 이렇게 동작하는가”와 “어디서 조용히 틀리는가”를 중심에 둡니다.
- 코드는 직접 실행하며 따라오는 것을 전제로 합니다. 그래서 이번 0편에서 실습 환경부터 준비합니다.
실습 환경 준비
실습 환경은 Google Colab으로 통일합니다. 설치가 필요 없고, 학교 실습실처럼 설치 권한이 없는 컴퓨터에서도 브라우저만 있으면 되기 때문입니다. Colab에 접속해 “새 노트북”을 만들면 NumPy와 pandas가 이미 설치되어 있습니다.
새 노트북 셀에서 아래 코드가 에러 없이 실행되면 준비가 끝난 것입니다.
1
2
3
4
import numpy as np
import pandas as pd
np.__version__, pd.__version__ # ('2.x.x', '2.x.x')
실습 데이터
시리즈 전체에서 이 파일 하나만 씁니다. 가상의 학생이 8개 학기(2022-1~2025-2) 동안 수강한 48개 과목의 중간고사와 기말고사 성적으로, 96행 8컬럼짜리 CSV입니다.
| 컬럼 | 내용 |
|---|---|
| 과목명 | 수강 과목 이름. F를 받고 재수강한 과목은 두 학기에 두 번 등장 |
| 이수구분 | 전공필수 / 전공선택 / 교양 |
| 학점 | 1~3 |
| 수강학기 | 2022-1 ~ 2025-2 |
| 시험구분 | 중간고사 / 기말고사 |
| 시험일시 | 2022-04-18 13:00 형식, 분 단위까지 |
| 성적 | 0~100 정수. 병결로 응시하지 못한 시험 2건은 빈칸 |
| 평점 | 과목 단위 등급(A+~F). 한 과목의 두 행에 같은 값이 반복 |
파일을 업로드할 필요는 없습니다. pandas는 URL에서 바로 CSV를 읽을 수 있어서, 아래 코드가 Colab에서 그대로 동작합니다. CSV를 읽는 법은 3편에서 자세히 다루므로 지금은 이 정도면 충분합니다.
1
2
3
4
import pandas as pd
df = pd.read_csv("https://blog.hoseunggg.com/assets/data/grades.csv")
scores = df["성적"].to_numpy()
성적의 빈칸 2건과 평점의 반복 표기는 일부러 넣은 것으로, 각각 6편(결측치)과 5편(groupby)에서 실습 소재로 씁니다.
환경과 데이터가 준비됐으면 1편부터 시작합니다.