반응형
파이썬 주식 / pandas로 상장법인 목록을 읽어와 Listview로 출력하기

1) read_html() 함수로 파일 읽기
한국거래소 기업공시채널(kind.krx.co.kr) 상장법인상세정보 > 상장법인목록에서 excel을 다운받아 read_html() 함수로 상장법인 목록을 읽습니다.
column명이 한글로 되어 있어서 영문으로 변경하였고, 업종코드는 총 6자리로 표시하도록 하였습니다. (26이면 000026으로)
#df = pd.read_html('https://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13')[0] df = pd.read_html('D:\\test.xls') dfs = df[0] print(dfs.columns) dfs.rename(columns={"회사명":"name"}, inplace=True) dfs.rename(columns={"종목코드":"code"}, inplace=True) dfs['code'] = dfs['code'].map('{:06d}'.format) dfs.rename(columns={"업종":"type"}, inplace=True) dfs.rename(columns={"주요제품":"major"}, inplace=True) dfs.rename(columns={"상장일":"start_date"}, inplace=True) dfs.rename(columns={"결산월":"settlement"}, inplace=True) dfs.rename(columns={"대표자명":"representative"}, inplace=True) dfs.rename(columns={"홈페이지":"homepage"}, inplace=True) dfs.rename(columns={"지역":"region"}, inplace=True) print(dfs.columns)
2) 가져온 상장법인목록을 Listbox 및 Label로 정보 표시하기
이 내용은 아래 링크를 참조합니다.
https://zidarn87.tistory.com/70?category=415247
파이썬 GUI tkinter / dataframe의 내용을 Listbox, Label로 표시
파이썬 GUI tkinter / dataframe의 내용을 Listbox, Label로 표시 1) numpy 배열로 data frame 생성 Listbox에 넣을 이름과 Label에 정보를 표시할 성별과 태어난 해 정보를 가지고 배열을 만듭니다. 배..
zidarn87.tistory.com
전체 코드
import numpy as np import pandas as pd from tkinter import * #df = pd.read_html('https://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13')[0] df = pd.read_html('D:\\test.xls') dfs = df[0] print(dfs.columns) dfs.rename(columns={"회사명":"name"}, inplace=True) dfs.rename(columns={"종목코드":"code"}, inplace=True) dfs['code'] = dfs['code'].map('{:06d}'.format) dfs.rename(columns={"업종":"type"}, inplace=True) dfs.rename(columns={"주요제품":"major"}, inplace=True) dfs.rename(columns={"상장일":"start_date"}, inplace=True) dfs.rename(columns={"결산월":"settlement"}, inplace=True) dfs.rename(columns={"대표자명":"representative"}, inplace=True) dfs.rename(columns={"홈페이지":"homepage"}, inplace=True) dfs.rename(columns={"지역":"region"}, inplace=True) print(dfs.columns) def CurSelect(evt): value = str((lb.get(lb.curselection()))) index = str((lb.index(lb.curselection()))) print(value) print(index) count = lb.index(lb.curselection()) name_w['text'] = dfs.loc[count, 'name'] code_w['text'] = dfs.loc[count, 'code'] type_w['text'] = dfs.loc[count, 'type'] major_w['text'] = dfs.loc[count, 'major'] start_date_w['text'] = dfs.loc[count, 'start_date'] settlement_w['text'] = dfs.loc[count, 'settlement'] representative_w['text'] = dfs.loc[count, 'representative'] homepage_w['text'] = dfs.loc[count, 'homepage'] region_w['text'] = dfs.loc[count, 'region'] window = Tk() window.geometry("700x400") lb = Listbox(window, height=5, selectmode=SINGLE) lb.bind('<<ListboxSelect>>',CurSelect) lb.pack() for i in dfs.index: val = dfs.loc[i, 'name'] lb.insert(END, val) name_l = Label(window, text="회사명 : ") name_l.pack() name_l.place(x=0, y=120, anchor='sw') name_w = Label(window, text="N/A") name_w.pack() name_w.place(x=50, y=120, anchor='sw') code_l = Label(window, text="종목코드 : ") code_l.pack() code_l.place(x=0, y=120+30, anchor='sw') code_w = Label(window, text="N/A") code_w.pack() code_w.place(x=65, y=120+30, anchor='sw') type_l = Label(window, text="업종 : ") type_l.pack() type_l.place(x=0, y=120+30+30, anchor='sw') type_w = Label(window, text="N/A") type_w.pack() type_w.place(x=40, y=120+30+30, anchor='sw') major_l = Label(window, text="주요제품 : ") major_l.pack() major_l.place(x=0, y=120+30+30+30, anchor='sw') major_w = Label(window, text="N/A") major_w.pack() major_w.place(x=65, y=120+30+30+30, anchor='sw') start_date_l = Label(window, text="상장일 : ") start_date_l.pack() start_date_l.place(x=0, y=120+30+30+30+30, anchor='sw') start_date_w = Label(window, text="N/A") start_date_w.pack() start_date_w.place(x=50, y=120+30+30+30+30, anchor='sw') settlement_l = Label(window, text="결산월 : ") settlement_l.pack() settlement_l.place(x=0, y=120+30+30+30+30+30, anchor='sw') settlement_w = Label(window, text="N/A") settlement_w.pack() settlement_w.place(x=50, y=120+30+30+30+30+30, anchor='sw') representative_l = Label(window, text="대표자명 : ") representative_l.pack() representative_l.place(x=0, y=120+30+30+30+30+30+30, anchor='sw') representative_w = Label(window, text="N/A") representative_w.pack() representative_w.place(x=65, y=120+30+30+30+30+30+30, anchor='sw') homepage_l = Label(window, text="홈페이지 : ") homepage_l.pack() homepage_l.place(x=0, y=120+30+30+30+30+30+30+30, anchor='sw') homepage_w = Label(window, text="N/A") homepage_w.pack() homepage_w.place(x=65, y=120+30+30+30+30+30+30+30, anchor='sw') region_l = Label(window, text="지역 : ") region_l.pack() region_l.place(x=0, y=120+30+30+30+30+30+30+30+30, anchor='sw') region_w = Label(window, text="N/A") region_w.pack() region_w.place(x=40, y=120+30+30+30+30+30+30+30+30, anchor='sw') window.mainloop()
반응형
'파이썬 > 파이썬 주식 암호화폐' 카테고리의 다른 글
파이썬 암호화폐 / 빗썸 API를 이용하여 매수, 매도하기 (0) | 2020.10.14 |
---|---|
파이썬 암호화폐 / 빗썸 API를 이용하여 잔고 조회하기 (0) | 2020.10.14 |
파이썬 암호화폐 / pybithumb 모듈로 빗썸 가상화폐 정보 가져오기 (0) | 2020.10.06 |
파이썬 주식 / get_data_yahoo를 이용해 주가 일간 변동률 구하기 (0) | 2020.08.15 |
파이썬 주식 / yfinance를 이용하여 삼성전자 주식 정보 가져와 그래프로 표시하기 (0) | 2020.08.05 |