파이썬으로 엑셀 파일(.xlsx, .xls)을 아주 쉽게 불러올 수 있어요! 데이터 분석, 자동화, 크롤링 결과를 엑셀로 저장했다가 다시 읽을 때 필수죠.
1. 가장 많이 쓰이는 3가지 라이브러리 비교
| 라이브러리 | 파일 형식 | 장점 | 단점 | 설치 명령어 |
| pandas (추천1) | .xlsx, .xls | 가장 편리하고 빠름, DataFrame으로 바로 사용 | 없음 | pip install pandas openpyxl |
| openpyxl | .xlsx | 엑셀 스타일, 셀 서식까지 제어 가능 | 읽기만 할 거면 좀 무거움 | pip install openpyxl |
| xlrd (구버전) | .xls (구형) | 예전 파일용 | xlsx 안 됨, 2.0부터 지원 중단 | pip install xlrd==1.2.0 |
→ 2025년 기준으로 거의 99%는 pandas + openpyxl 조합 쓰면 끝!
2. 기본 사용법 (pandas 추천)
import pandas as pd
# 1. 엑셀 파일 불러오기 (가장 기본)
df = pd.read_excel('파일이름.xlsx')
# 2. 시트 지정해서 불러오기
df = pd.read_excel('파일이름.xlsx', sheet_name='시트2') # 시트 이름
df = pd.read_excel('파일이름.xlsx', sheet_name=1) # 0부터 시작하는 인덱스
# 3. 여러 시트 한 번에 불러오기
excel_file = pd.ExcelFile('파일이름.xlsx')
sheet_names = excel_file.sheet_names # ['시트1', '시트2', ...]
dfs = {sheet: pd.read_excel('파일이름.xlsx', sheet_name=sheet) for sheet in sheet_names}
# 4. 특정 열을 인덱스로
df = pd.read_excel('파일이름.xlsx', index_col=0) # 첫 번째 열을 인덱스로
df = pd.read_excel('파일이름.xlsx', index_col='이름') # '이름' 열을 인덱스로
# 5. 헤더(컬럼명)가 없는 경우
df = pd.read_excel('파일이름.xlsx', header=None)
# 6. 특정 행부터 읽기 (예: 3번째 행부터)
df = pd.read_excel('파일이름.xlsx', skiprows=2)
# 7. 특정 열만 불러오기 (메모리 절약!)
df = pd.read_excel('파일이름.xlsx', usecols=['이름', '나이', '점수'])
df = pd.read_excel('파일이름.xlsx', usecols='A:C') # A~C열
3. 실전 예제
import pandas as pd
# 예제: 회원 목록 엑셀 파일 읽기
df = pd.read_excel('회원목록.xlsx', sheet_name='2025년', index_col='아이디')
print(df.head()) # 상위 5개만 확인
print(df.info()) # 데이터 구조 확인
print(df['이름']) # 이름 열만 출력
# 조건 검색
vip_회원 = df[df['등급'] == 'VIP']
print(vip_회원)
4. 자주 하는 실수 & 팁
- 에러: ImportError: Missing optional dependency 'openpyxl' → 해결: pip install openpyxl
- 에러: xlrd.biffh.XLRDError: Excel xlsx file; not supported → 해결: xlrd 2.0 이상은 xlsx 안 됨 → pip install xlrd==1.2.0 또는 그냥 pandas+openpyxl 쓰세요
- 한글 깨짐? → 거의 안 생김 (pandas가 알아서 UTF-8 처리)
- 아주 큰 파일(수십만 행) 엑셀 파일 → pd.read_excel(..., engine='openpyxl', nrows=10000) 등으로 쪼개서 읽기
마무리
# 한 줄로 끝!
df = pd.read_excel('내파일.xlsx')
이 한 줄만 기억해도 파이썬으로 엑셀 다루기의 90%는 끝났습니다
반응형
'IT관련' 카테고리의 다른 글
| 티스토리 블로그에 MS Bing Content Submission API 적용하기: 색인 등록 가이드 (0) | 2025.12.11 |
|---|---|
| 웹에서 복사한 텍스트를 내용만 깔끔하게 붙여넣기 하는 방법 정리 (0) | 2025.12.07 |
| 구글 시트에서 세로 데이터를 가로로 변환하는 방법 (0) | 2025.12.05 |
| TDD vs BDD 차이점 완벽 정리 (개발자라면 꼭 알아야 할 테스트 방법론 비교) (0) | 2025.11.28 |
| 개발, 스테이징, 운영 환경 차이 – 스테이징이 대체 뭔가요? (0) | 2025.11.24 |