파이썬 데이터분석 4주차

Lina Lee·2021년 5월 22일
0

데이터 불러오기

온라인에서 최신 코드 데이터 가져오기

import pandas as pd
code = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
code.head(5)

라이브러리

데이터리더 라이브러리

import pandas_datareader as pdr
kakao_stock_df = pdr.get_data_yahoo(kakao_code)

데이타임 라이브러리

from datetime import datetime

시본 라이브러리(상관관계 그래프 그리기)

conda install -c anaconda seaborn
import seaborn as sns

데이터 전처리

필요한 데이터 자르기

code = code[['회사명', '종목코드']]
code

컬럼명 바꾸기

code_result = code.rename(columns={'회사명': 'corp', '종목코드': 'code'})

코드를 받아오는 함수 만들기

회사명으로 주식 종목 코드를 획득할 수 있도록 하는 함수
def get_code(code_result, corp_name):
condition = "corp=='{}'".format(corp_name)
code = code_result.query(condition)['code'].to_string(index=False)
위와같이 code명을 가져오면 앞에 공백이 붙어있는 상황이 발생하여 앞뒤로 sript() 하여 공백 제거
code = code.strip()
code = code.rjust(6, '0')
code = code + '.KS'
return code

데이터 분석

상관관계 분석

companies = ['삼성전자', 'LG전자', '카카오', 'NAVER', 'CJ', '한화', '현대자동차', '기아자동차']
start = datetime(2019,1,1)
end = datetime(2019,12,31)
stocks_of_companies = pd.DataFrame({'Date': pd.date_range(start=start, end=end)})
stocks_of_companies

for company in companies:
company_code = get_code(code_result, company)
stock_df = pdr.get_data_yahoo(company_code, start, end)
stocks_of_companies = stocks_of_companies.join(pd.DataFrame(stock_df['Close']).rename(columns={'Close':company}), on='Date')
stocks_of_companies.tail(5)

corr_data = stocks_of_companies.corr()

그래프 그리기

선그래프

kakao_stock_df['Close'].plot()

종목 그래프 그리기

corp_name = "카카오"
condition = "corp=='{}'".format(corp_name)
kakao = code_result.query(condition)
kakao = kakao['code']
kakao_string = kakao.to_string(index=False)
kakao_string = kakao_string.strip()
kakao_string = kakao_string.rjust(6, '0')
kakao_code = kakao_string + '.KS'

상관관계 그래프 그리기

라이브러리 불러오기
import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams['font.family'] = "Malgun Gothic"
plt.rcParams['axes.unicode_minus'] = False

  • Apple은 'AppleGothic', Windows는 'Malgun Gothic'을 추천
  • 마이너스 기호 깨지는 걸 막아줘요

seabon으로 그래프 그리기
plt.figure(figsize=(5,3))
sns.lineplot(data=kakao_stock_df['Close'])

plt.figure(figsize=(10,10))
sns.heatmap(data = corr_data, annot=True, fmt = '.2f', linewidths=.5, cmap='Blues')
plt.show()

보고 및 공유 보고서

데이터스튜디오

https://datastudio.google.com/u/0/navigation/reporting

0개의 댓글