내맘대로 코딩
[스파르타 내일배움] Python - 데이터분석기초, 해외주식다루기 본문
강의명
[왕초보] 주식 데이터를 활용한 파이썬 데이터 분석 23회차
이범규 튜터
강의자료
https://www.notion.so/2-0d8934bd7a304d72b68953600463e0d1?pvs=4
[스파르타코딩클럽] 2주차 : 손쉽게 다루는 해외주식 – 데이터분석기초, 해외주식 다루기
매 주차 강의노트 시작에 PDF파일을 올려두었어요!
www.notion.so
Weekly I learned
Pandas 기초
파이썬에서 데이터를 쉽게 다룰 수 있게 해주는 라이브러리, 판다스!
판다스의 DataFrame 형식을 사용하면, 이런 데이터를,
{
'나이': [21, 35, 24],
'이름': ['홍길동', '임꺽정', '세종대왕'],
'주소': ['서울시', '고려시', '조선시']
}
⇒ 이렇게 깔끔하게 볼 수 있게 해준답니다!
⇒ 뿐만 아니라, 열 붙이기, 값 찾기 등.. 다양한 기능을 쉽게 사용할 수 있죠!
기본 DataFrame 만들어보기
⇒ 데이터를 먼저 만들어볼게요. 아래와 같이, “함께” 작성해볼게요!
data = {
'name' : ['영수','철수','영희','소희'],
'age' : [20,15,38,8]
}
⇒ 그리고, 다음을 입력해서 DataFrame을 만들어봅니다.
df = pd.DataFrame(data)
⇒ 여기서 df 를 입력하면, 표를 볼 수 있습니다
.⇒ 맨 왼쪽은 이 데이터들의 “index”라는 것이에요. 지금은 자동으로 생성이 되었네요!
⇒ 이렇게, DataFrame은 “딕셔너리” 형태로 표현된 데이터를 표로 바꿔주는 역할을 한답니다.
Pandas 실전
어제 오른 종목들만 골라보기
df[df['change_rate'] > 0]
per가 0 인 종목들을 제거하기
df = df[df['per'] > 0]
순이익, 종가를 추가하기
per = 시가총액 / 순이익 = 주가 / 주당순이익
df['earning'] = df['marketcap'] / df['per']
df['close'] = df['per'] * df['eps']
해외주식 다루기 - yfinance
yfinance 라이브러리 설치하기 : pip install yfinance
기본 정보 얻기
name = company.info['shortName']
industry = company.info['industry']
marketcap = company.fast_info['market_cap']
revenue = company.info['totalRevenue']
print(name,industry,marketcap,revenue)
재무제표에서 3년치 데이터 얻기
company.balance_sheet
company.cashflow
company.earnings
분석하기(1) : 전략 세우기, 데이터 모으기
[전략세우기]
시작하기 : “1) 전략을 세우고 → 2) 데이터를 모으고 → 3) 모아진 데이터를 분석”
company = yf.Ticker('TSLA')
code = 'TSLA'
name = company.info['shortName']
industry = company.info['industry']
# marketCap= company.info['marketCap']
marketCap= company.fast_info['market_cap']
# currentPrice= company.info['currentPrice']
currentPrice= company.fast_info['last_price']
summary = company.info['longBusinessSummary']
targetprice = company.info['targetMeanPrice']
per = company.info['trailingPE']
eps = company.info['trailingEps']
pbr = company.info['priceToBook']
print(code,name,industry,marketCap,summary,currentPrice,targetprice,per,eps,pbr)
최근 3년 매출, 순이익 더하기
rev2021 = company.earnings.iloc[-1,0]
rev2020 = company.earnings.iloc[-2,0]
rev2019 = company.earnings.iloc[-3,0]
ear2021 = company.earnings.iloc[-1,1]
ear2020 = company.earnings.iloc[-2,1]
ear2019 = company.earnings.iloc[-3,1]
[데이터 모으기]
def add_company(code):
company = yf.Ticker(code)
name = company.info['shortName']
industry = company.info['industry']
bussiness = company.info['longBusinessSummary']
# marketCap= company.info['marketCap']
# currentPrice= company.info['currentPrice']
marketCap= company.fast_info['market_cap']
targetPrice= company.info['targetMeanPrice']
currentPrice= company.fast_info['last_price']
per = company.info['forwardPE']
eps = company.info['forwardEps']
pbr = company.info['priceToBook']
rev2021 = company.earnings.iloc[-1,0]
rev2020 = company.earnings.iloc[-2,0]
rev2019 = company.earnings.iloc[-3,0]
ear2021 = company.earnings.iloc[-1,1]
ear2020 = company.earnings.iloc[-2,1]
ear2019 = company.earnings.iloc[-3,1]
doc = {
'code':code,
'name':name,
'industry':industry,
'bussiness':bussiness,
'marketCap':marketCap/1000,
'currentPrice':currentPrice,
'targetPrice':targetPrice,
'per':per,
'eps':eps,
'pbr':pbr,
'rev2021':rev2021/1000,
'rev2020':rev2020/1000,
'rev2019':rev2019/1000,
'ear2021':ear2021/1000,
'ear2020':ear2020/1000,
'ear2019':ear2019/1000,
}
return doc
'Python' 카테고리의 다른 글
업무자동화_파이썬으로 네이버 뉴스 기사 스크래핑/크롤링 하기(2)_엑셀에 저장하기 (0) | 2023.06.24 |
---|---|
업무자동화_파이썬으로 네이버 뉴스 기사 스크래핑/크롤링 하기(1) (0) | 2023.06.24 |
[스파르타 내일배움] Python 1주차 - 파이썬기초, 업무자동화 (0) | 2023.02.20 |