개요
워렌버핏 명언에 이런 말이 있습니다. 10년 이상을 볼 것이 아니면 10분도 그 주식을 갖고 있지 말아라. 물론 10년 이상 주식을 보유한다는건 개미투자자들에게 매우 힘든일입니다.
그렇다면 과연, 여러분은 주식을 어떻게 선택하나요? 대부분의 투자자들은 아마도, 테마주, 실시간순위에 있는기업, 급등주 등 뉴스나 사람들 입에 오르내리는 주식에 눈이가기 마련입니다. 이러한 이유로 뭐하회(뭐라도 하겠지 회사인데)라는 용어가 생겨난 것입니다.
주식을 하는데 있어 대부분의 저명한 투자자들의 1원칙은 "절대 돈을 잃지 마라 "입니다. 돈을 읽지 않기 위해서는 좋은 회사를 선택해야하고, 다시 말해 종목을 선택하는데 있어 매우 신중해야한다는 것 입니다. 이번 포스팅은 돈을 읽지 않기 위해서는 어떤 기업을 선택해야하는가에 대한 첫 번째 스텝이며, 바로 이 회사가 꾸준히 돈을 벌고 있는지를 파이썬과 웹크롤링을 통해 확인해보겠습니다.
영업이익이란? (영업이익 = 매출- 제품원가 - 영업비용)
영업이익이란 총매출에서 제품원가와 영업비용을 차감한 비용을 말합니다. 즉 회사가 자기본업을 통해 얼마만큼의 돈을 벌고 잃는지 알 수 있는 지표가 바로 영업이익입니다.
단, 영업이익이 흑자여도 실제 회사 순이익은 손해를볼 수 있습니다.이는 당기순이익에서 볼 수 있는데, 바로 아래표를 보면 영업이익이 흑자여도, 순이익은 적자가 될 수 있습니다. 이는 본업 외 투자 등의 활동으로 발생할 수 있습니다. 반대로 영업이익이 적자라도 순이익은 흑자가 발생할 수 있으며, 이런 경우 기업의 단기순이익 세부내역을 찾아볼 필요가 있습니다.
결국 이 회사가 본업으로 돈을 잘 벌고 있는가 생각할때 영업이익을 참고하는 것이 맞으며, 최근 1년동안 영업이익이 흑자였던 기업을 찾아보겠습니다.
라이브러리
#시각화 라이브러리
import matplotlib.pyplot as plt
import seaborn as sns
plt.rc('font', family='NanumGothic')
#전처리 라이브러리
from tqdm import tqdm_notebook
import pandas as pd
#크롤링 라이브러리
import requests
코스닥 종목 및 종목코드 가져오기
url = 'https://kind.krx.co.kr/corpgeneral/corpList.do'
kosdaq_code = pd.read_html(url+"?method=download&marketType=kosdaqMkt")[0]
# 코스닥 종목 업종
kosdaq_sectors = kosdaq_code[['회사명','업종','주요제품']]
# 종목코드가 int 타입이라 앞의 0이 사라짐, 다시 붙여주는 코드
kosdaq_code = kosdaq_code[['회사명','종목코드']]
kosdaq_code['종목코드'] = kosdaq_code['종목코드'].astype('str')
kosdaq_code['종목코드'] = kosdaq_code['종목코드'].map(lambda x : '00'+x if len(x) ==4 else x)
kosdaq_code['종목코드'] = kosdaq_code['종목코드'].map(lambda x : '0'+x if len(x) ==5 else x)
코스닥 종목 영억이익 크롤링
result = pd.DataFrame()
for index, row in tqdm_notebook(kosdaq_code.iterrows()):
try :
code = row[1]
url = f"https://finance.naver.com/item/main.nhn?code={code}"
res = requests.get(url)
df = pd.read_html(res.text)[3]
# 재무정보 인덱스 설정
df.set_index(df.columns[0],inplace=True)
df.index.rename('재무정보', inplace=True)
# 두번째 컬럼 제거
df.columns = df.columns.droplevel(2)
# 최근 분기 실적만 가져오기
quater = pd.DataFrame(df).xs('최근 분기 실적',axis=1)
# 최근 4개 분기 가져오기
df2 = quater[['2021.12', '2022.03', '2022.06', '2022.09']]
df2 = df2.reset_index()
# 매출액 가져오기
df2 = df2[df2['재무정보']=='영업이익']
# 종목명 입력
df2['재무정보'] = row[0]
result = pd.concat([result, df2])
except :
pass
최근 1년 영억이익이 흑자인 기업 추출
1,610개의 코스닥 기업 중 최근 1년 간 영업이익 수치가 있는 기업은 1,493개 기업이었으며, 1,493개 기업 중 최근 1년동안 영업이익이 흑자인 기업은 총 603개 기업이었습니다.
# 수집 데이터 확인
print('코스닥 종목 데이터 : ',kosdaq_code.shape)
print('4분기 데이터가 있는 종목 : ',result.shape)
# 결산이 안된 분기는 -로 표시 되기 때문에 음수로 변환
result = result.replace('-', -999)
# 4개분기 모두 이익을 기록한 회사 추출
operatingp_rofit_plus= result[result['2021.12'].map(lambda x : int(x)>0) & result['2022.03'].map(lambda x : int(x)>0)& result['2022.06'].map(lambda x : int(x)>0)& result['2022.09'].map(lambda x : int(x)>0)]
# 컬럼명 변경
operatingp_rofit_plus.columns = ['회사명', '2021.12', '2022.03', '2022.06', '2022.09']
# 업종 테이블과 merge
operatingp_rofit_plus = pd.merge(operatingp_rofit_plus, kosdaq_sectors, on='회사명', how='inner')
# 데이터 저장
operatingp_rofit_plus.to_excel('drive/MyDrive/코스닥_4분기_이익종목.xlsx', index=False)
- 1년간 영업이익이 흑자인 기업 리스트
결론
코스닥의 상장된 기업들 중 1년간 영업이익이 흑자인 기업은 전체의 약 37%밖에 되지 않습니다.물론 적자기업이라고 전부 안좋은 기업은 아닙니다. 공격적인 투자 등의 이유로 적자가 난 기업들도 존재할 수 있습니다.
다만, 개인은 모든 기업들을 세세하게 찾아볼 수 없으며, 자신만의 기준을 가지고 종목을 선택하게 되면, 조금 더 선택과 집중을 할 수 있지 않을까 생각합니다.
다음 포스팅은 분기가 아닌 연간 영업이익이 흑자인 기업을 찾아보도록 하겠습니다.
'투자 > 국내주식' 카테고리의 다른 글
[국내주식] 최근3년간 영업이익이 흑자인 코스닥 기업 찾기(with python) (0) | 2022.12.12 |
---|---|
[크롤링] 코스닥 종목 네이버 주요 재무정보 가져오기(with 파이썬) (0) | 2022.12.10 |
[국내주식] 코스피, 코스닥 종목 확인하기(with python) (1) | 2022.09.11 |