INVESTAR / StockAnalysisInPython

452 stars 411 forks source link

5장 질문 #145

Open rhee931007 opened 2 years ago

rhee931007 commented 2 years ago
5장오류

DBUpdaterEX.py 를 실행할 때

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead. df = df.append(pd.read_html(requests.get(pg_url,)

라는 문구가 뜨는데요, 정상적으로 데이터는 db에 저장되는것 같은데, 해석해보면 추후 pandas 에서는 frame.append라는 함수가 적용되지 않는 함수라는 뜻 같습니다. 모듈 변경이 필요할까요?

INVESTAR commented 2 years ago

말씀하신대로 데이터 프레임의 append() 메써드가 향후에는 없어질 예정이므로 pandas의 concat() 메서드를 대신 사용하도록 안내해주는 메시지입니다.

제 PC의 pandas 0.25.3 버전에서는 FutureWarning이 발생하지 않는데 아마도 더 최신 버전의 pandas를 설치하신 것 같네요.

append() 메써드가 호출될 때마다 표시되는 FutureWarning이 보기 싫으시면 아래와 같이 concat() 메써드로 변경하시면 됩니다.

#df = df.append(pd.read_html(requests.get(pg_url, headers={'User-agent': 'Mozilla/5.0'}).text)[0])
df = pd.concat([df, pd.read_html(requests.get(pg_url, headers={'User-agent': 'Mozilla/5.0'}).text)[0]])

제 책에서 concat() 메써드는 다루지 않았는데, 여러가지 방식으로 데이터를 병합할 수 있기 때문에 알아두시면 상당히 유용한 메써드입니다.