【Pandas】Pandas를 가져올 때의 에러 대응

소개



여러분, 안녕하세요. @Raphael_de_murl 입니다. 이번 기사는 이론적인 정보 공유보다는 에러 메세지의 대응에 대해 소개시키고 싶습니다.

어떤 오류입니까?



기사의 제목대로 Pandas에 관한 에러 대응이 됩니다. 기계 학습을 공부하고 있는 분이라면 한번은 하는 주가 데이터의 해석입니다. 그 중 Pandas를 가져올 때 발생하는 오류입니다.

pandas_error
froma pandas.io.data import DataReader

이 모듈을 가져오면 이런 오류가 발생합니다.

error_messege
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-8-ddc8504c263b> in <module>
----> 1 from pandas.io.data import DataReader

ModuleNotFoundError: No module named 'pandas.io.data'

오류의 원인



그럼, 원래 무엇이 원인으로 이런 에러가 발생했는지를 봅시다.
pandas-datareader 문서

Starting in 0.19.0, pandas no longer supports pandas.io.data or pandas.io.wb, so you must replace your imports from pandas.io with those from pandas_datareader:

과연... 이전까지는 pandas.io의 이름으로 지원했습니다만, pandas의 0.19.0 이후의 버젼에서는 지원이 종료했군요. 대신 pandas_datareader라는 라이브러리를 설치하여 해결할 수있는 것 같습니다. 해보자.

대응



에러의 원인을 파악할 수 있었던 곳에서 나머지는 그 대응이군요. 공식 문서를 보면서 대응해 갑니다. 먼저 pandas_datareader 라이브러리를 설치합니다.

install
pip install pandas-datareader
#こちらはgithubからの最新バージョンのインストールです。
pip install git+https://github.com/pydata/pandas-datareader.git

설치가 완료되면 가져옵니다.

import
from pandas_datareader import DataReader

그러면 오류가 해결되었을 것입니다.

확인



오류가 나오지 않기 때문에 문제가 해결되었다고 말할 수 없습니다. 제대로 가져와 사용하고 싶은 라이브러리가 제대로 움직이는지까지 확인하는 것이 엔지니어의 기본입니다. 한 가지 예로 일부 기업의 정보를 얻고 싶습니다. 그건 그렇고, 테스트 환경은 jupyter NoteBook입니다.

샘플
import pandas as pd
import numpy as np 
from pandas import Series, DataFrame

샘플
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
%matplotlib inline

샘플
from pandas_datareader import DataReader
from datetime import datetime

샘플
tech_list = ['AAPL', 'GOOG', 'MSFT', 'AMZN']

샘플
end = datetime.now()
start = datetime(end.year - 1, end.month, end.day)

샘플
for stock in tech_list:
    globals()[stock] = DataReader(stock, 'yahoo', start, end)

샘플
AAPL.describe()

여기까지 입력하고 확인하면

이런 식으로 데이터가 제대로 보이면 성공입니다.

종합적으로



엔지니어가 에러 해결이 귀찮게 하거나 하고 싶지 않다는 것은 좋지 않습니다. 제대로 보고 원인을 파악해 해결하는 것이 멋집니다! 그렇지 않을까요? 필자는 그렇게 생각합니다 (웃음)

↓필자가 운용하고 있는 트위터입니다. 흥미있는 분은 꼭 팔로워 부탁드립니다.
AI/기계학습 오빠 트위터

좋은 웹페이지 즐겨찾기