CSV 특정 열만 읽기 : usecols

30 P
QUESTION 03 #383
CSV 파일에서 필요한 열만 골라서 읽는 프로그램입니다. 빈칸을 채우세요.
main.py
import pandas as pd

# 테스트용 CSV 생성
df_save = pd.DataFrame({
    '이름': ['민수', '서희', '지연'],
    '국어': [90, 85, 70],
    '영어': [80, 95, 88],
    '수학': [85, 90, 100]
})
df_save.to_csv('/tmp/grades.csv', index=False)

# '이름'과 '수학' 열만 읽어옵니다.
df = pd.read_csv('/tmp/grades.csv', =['이름', '수학'])

print(df)
실행 결과 예시
   이름   수학
0  민수   85
1  서희   90
2  지연  100
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

usecols로 필요한 열만 읽기

CSV 파일에 열이 많을 때 필요한 열만 골라서 읽으면 효율적입니다.

기본 문법

df = pd.read_csv("파일.csv", usecols=["열1", "열2"])

동작 과정

CSV 파일 (4개 열):              usecols 적용 (2개 열만):

이름,국어,영어,수학                이름  수학
민수,90,80,85      usecols     0  민수   85
서희,85,95,90     --------→   1  서희   90
지연,70,88,100                 2  지연  100

                              국어, 영어 열은 읽지 않음!

usecols의 두 가지 방식

# 방법 1: 열 이름으로 선택
df = pd.read_csv("data.csv", usecols=['이름', '수학'])

# 방법 2: 열 번호(인덱스)로 선택
df = pd.read_csv("data.csv", usecols=[0, 3])
# 0번째 열(이름)과 3번째 열(수학) 선택

usecols를 사용하는 이유

상황 장점
열이 50개인데 3개만 필요 메모리 절약
대용량 파일 (수백 MB) 읽기 속도 향상
분석에 불필요한 열 제외 코드 간결화

읽은 후 열 선택 vs usecols 비교

# 방법 A: 전체 읽은 후 선택 (메모리 낭비)
df = pd.read_csv("big.csv")
df = df[["이름", "수학"]]

# 방법 B: 처음부터 필요한 열만 읽기 (효율적)
df = pd.read_csv("big.csv", usecols=["이름", "수학"])

💡 핵심: 대용량 파일에서는 처음부터 usecols로 필요한 열만 읽는 것이 효율적입니다.