주식아빠, 좀버남의 주식 연구소

[주식-프로그래밍] 8. 파이썬 - 데이터 엑셀파일로 추출하기 본문

코딩이야기/파이썬

[주식-프로그래밍] 8. 파이썬 - 데이터 엑셀파일로 추출하기

좀버남 2020. 5. 30. 14:10

안녕하세요

 

2020/05/30 - [코딩이야기/파이썬] - [주식-프로그래밍] 7. 파이썬 - 주식 전체종목 코드 가져오기

 

[주식-프로그래밍] 7. 파이썬 - 주식 전체종목 코드 가져오기

안녕하세요. 2020/05/26 - [코딩이야기/파이썬] - [주식-프로그래밍] 6. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 세번째 [주식-프로그래밍] 6. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 세�

kang-stock-coding.tistory.com

 

지난시간에 이어서 이번 시간에는 만들어낸 결과물을 엑셀파일로 만드는 것을 해볼텐데요.

우선 다시 FS_Table.py로 돌아오구요. (All_code.py)에서 쓴 결과물은 나중에 쓸꺼니까요.

 

코드는 정말 쉽습니다.

total_fs.to_excel('Financial.xlsx')

이거 한줄이면 끝입니다.

total_fs.to_excel('파일이름')

import pandas as pd
import requests
from bs4 import BeautifulSoup
from tabulate import tabulate
from pandas import DataFrame
import time

#함수 1.원하는 재무테이블 가져오기
def fs_data(code):
    url = 'http://comp.fnguide.com/SVO2/ASP/SVD_Finance.asp?pGB=1&cID=&MenuYn=Y&ReportGB=&NewMenuID=103&stkGb=701&gicode=' + code
    res = requests.get(url)
    df = pd.read_html(res.text)
    temp_df=df[0]
    temp_df=temp_df.set_index(temp_df.columns[0])
    temp_df=temp_df[temp_df.columns[:4]]
    temp_df=temp_df.loc[['매출액','영업이익','당기순이익']]
    return temp_df

#함수 2.행열변환 및 테이블 수정
def change_df(code,fs_df):
    for num,col in enumerate(fs_df.columns):
        temp_df=pd.DataFrame({code:fs_df[col]})
        temp_df=temp_df.T
        temp_df.columns=[[col]*len(fs_df),temp_df.columns]
        if num ==0:
            total_df=temp_df
        else:
            total_df=pd.merge(total_df,temp_df,how='outer',left_index=True,right_index=True)        
    return total_df


#본문코드
code = ['A005930','A000660', 'A207940', 'A035420', 'A068270']
for num, code in enumerate(code):
    fs_data_frame=fs_data(code)
    fs_data_frame_changed=change_df(code,fs_data_frame)
    if num ==0:
        total_fs = fs_data_frame_changed

    else:
        total_fs=pd.concat([total_fs,fs_data_frame_changed])
    
total_fs.to_excel('Financial.xlsx')
#print(total_fs)

위와 같이 기존에 print를 주석처리하고 대신에 excel로 추출하는 코드를 넣었습니다.

 

자 이제 'python FS_Table.py'를 입력하여, 실행해보겠습니다.

아래와 같이 에러코드가 확인 됩니다.

xlsxwriter라는 기능을 사용할수가 없는데요. 라이브러리를 하나 설치해줍니다.

 

pip install openpyxl

위와 같이 설치가 완료 된 것을 확인 할 수 가 있습니다.

 

자 이제 실행하면???

 

 

터미널에는 별 반응이 없습니다만, 왼쪽 탐색기를 보면 "Finnancil.xlsx" 파일이 생성 된것을 확인 할 수 가 있습니다.

해당 파일에서 마우스 우측을 클릭해서, '열기' 혹은 '파일 다운로드' 등 다양한 방법으로 파일을 열어 볼 수가 있습니다.

 

자 이제 엑셀파일을 한번 열어보면?? 아래와 같이 데이터가 잘 뽑혀 나오는 것을 확인 할 수 가 있습니다.

 

 

감사합니다.