파이썬 데이터 분석

쥬피터 노트북, 엑셀 읽기, 오류

codingmonsters 2021. 4. 27. 02:33

아나콘다를 설치 -> 쥬피터 노트북 -> 파이썬 엑셀 불러오기

 

이 과정을 하던 중 뜻하지 않은 오류가 생겼다.

 

보통 pandas를 사용하여 엑셀파일을 불러오려 할 것이다. 하지만 다음과 같은 오류를 만났다.

 

 

import pandas as pd
import numpy as np

sample_1 = pd.read_excel('C:/Users/namju/Desktop/파이썬 데이터 분석/datasalon/02_개정판/2_Data_Analysis_Basic/files/sample_1.xlsx',
                        header = 1,
                        skipfooter = 2,
                        usecols = 'A:C',
                        )
XLRDError                                 Traceback (most recent call last)
<ipython-input-21-a92a13001bd1> in <module>
      2                         header = 1,
      3                         skipfooter = 2,
----> 4                         usecols = 'A:C',
      5                         )

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    294                 )
    295                 warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
--> 296             return func(*args, **kwargs)
    297 
    298         return wrapper

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\io\excel\_base.py in read_excel(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols)
    302 
    303     if not isinstance(io, ExcelFile):
--> 304         io = ExcelFile(io, engine=engine)
    305     elif engine and engine != io.engine:
    306         raise ValueError(

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\io\excel\_base.py in __init__(self, path_or_buffer, engine)
    865         self._io = stringify_path(path_or_buffer)
    866 
--> 867         self._reader = self._engines[engine](self._io)
    868 
    869     def __fspath__(self):

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\io\excel\_xlrd.py in __init__(self, filepath_or_buffer)
     20         err_msg = "Install xlrd >= 1.0.0 for Excel support"
     21         import_optional_dependency("xlrd", extra=err_msg)
---> 22         super().__init__(filepath_or_buffer)
     23 
     24     @property

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\io\excel\_base.py in __init__(self, filepath_or_buffer)
    351             self.book = self.load_workbook(filepath_or_buffer)
    352         elif isinstance(filepath_or_buffer, str):
--> 353             self.book = self.load_workbook(filepath_or_buffer)
    354         elif isinstance(filepath_or_buffer, bytes):
    355             self.book = self.load_workbook(BytesIO(filepath_or_buffer))

~\anaconda3\envs\rstudio-\lib\site-packages\pandas\io\excel\_xlrd.py in load_workbook(self, filepath_or_buffer)
     35             return open_workbook(file_contents=data)
     36         else:
---> 37             return open_workbook(filepath_or_buffer)
     38 
     39     @property

~\anaconda3\envs\rstudio-\lib\site-packages\xlrd\__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows, ignore_workbook_corruption)
    168     # files that xlrd can parse don't start with the expected signature.
    169     if file_format and file_format != 'xls':
--> 170         raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
    171 
    172     bk = open_workbook_xls(

XLRDError: Excel xlsx file; not supported

오류 내용을 간단히 하면 pandas에서 엑셀을 읽을 수 있는 라이브러리가 없다는 것이다. 

 

그렇기 때문에 따로 설치를 해줘야한다.

 

바로 "openpyxl"이다.  anaconda prompt창을 열어 "conda install openpyxl"을 입력하여 설치하자.

 

sample_1 = pd.read_excel('C:/Users/namju/Desktop/파이썬 데이터 분석/datasalon/02_개정판/2_Data_Analysis_Basic/files/sample_1.xlsx',
                        header = 1,
                        skipfooter = 2,
                        usecols = 'A:C',
                        engine = 'openpyxl')
sample_1.head(3)
국적코드	성별	입국객수
0	A01	남성	106320
1	A01	여성	191436
2	A31	남성	319

문제 없이 나오는 것을 확인할 수 있다.