728x90
반응형
"Life is too short, You need python"
read_excel로 xlsx file을 불러오면 XLRDError가 뜨시는 분들이 있으십니다.
이는 xlrd가 업데이트 되면서 더 이상 xls외 엑셀 파일(xlsx)을 지원하지 않기 때문입니다. 이 오류에 대한 대처 방법에 대해 확인해 보겠습니다.
XLRDError: Excel xlsx file; not supported
xlrd는 xls 파일 이외의 모든 것에 대한 지원을 명시적으로 제거했습니다.
- pandas 버전이 1.0.1 이상인지 확인 (가능한 최신버전)
- openpyxl 을 설치
- pandas 코드의 read_excel 에 engine='openpyxl' 인자를 추가
코드
import pandas as pd
file_path = 'd:/pylife/pandas/subject_grade.xlsx'
df_score = pd.read_excel(file_path)
오류 메세지
xlrd.biffh.XLRDError: Excel xlsx file; not supported
해결 방법
오류 원인은 read_excel로 불러올 경우 default engine이 xlrd를 통해 불러오기 때문인데 위에서 잠시 언급했지만 xlrd가 업데이트 되면서 xls 외 엑셀 파일들에 대한 지원을 중단했기 때문에 해당 문제 발생 시 engine을 'openpyxl'로 변경하면 됩니다.
우선 openpyxl 모듈을 설치하셔야 하는데요, 아래와 같이 pip로 module을 install 합니다.
pip install openpyxl
설치를 하셨다면 engine = 'openpyxl'로 engine을 변경해 보겠습니다.
import pandas as pd
file_path = 'd:/pylife/pandas/subject_grade.xlsx'
df = pd.read_excel(file_path, engine = 'openpyxl')
변경 후 불러오시면 잘 동작이 되는 것을 보실 수 있습니다.
(출력 결과)
No. Name Age English Math Science Sum Avg. Grade
0 1 Asher 16 97 69.0 18 184.0 61.333333 B
1 2 Bruno 17 70 69.0 53 192.0 64.000000 B
2 3 Kade 18 60 97.0 93 250.0 83.333333 A
3 4 Hendrix 14 76 46.0 11 133.0 44.333333 C
4 5 Julian 15 19 43.0 30 92.0 30.666667 D+
5 6 Emmett 16 29 6.0 97 132.0 44.000000 C
마무리
read_excel로 xlsx file을 불러올 때 XLRDError가 발생 시 대처 방법에 대해 알아보았습니다.
728x90
반응형