4週目のPythonデータ分析ログ


#ターゲット
1.データ分析を計画できます.
2.分析仮説を作成できます.
3.データ分析ノートに記入できます.
#1-株式データの分析
データの読み込み
import pandas as pd

code = pd.read_csv('./data/corpgeneral.csv', header=0)
code.head(5)

最新のコードデータをオンラインで取得するには、次の手順に従います.
code = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
データプリプロセッシング
# 필요한 데이터 자르기
code = code[['회사명', '종목코드']]

# 컬럼명 바꾸기
code_result = code.rename(columns={'회사명': 'corp', '종목코드': 'code'})
インポートに必要なプロジェクトコード
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_code = kakao_string.rjust(6, '0')
kakao_code

import pandas_datareader.data as web
kakao_stock_df = web.DataReader(kakao_code, 'naver') # 네이버로 변경
kakao_stock_df
グラフィックの描画
kakao_stock_df['Close'] = kakao_stock_df['Close'].astype(int)import pandas_datareader.data as web
kakao_stock_df['Close'].plot()

#2-分析したデータから内部サイトを取得する
2つのデータがどれだけ相関しているかを分析します.

  • ピルソン相関係数


    相関係数は1から−1まで存在する.絶対値が1に近いほど、相関は強くなります.0.4〜0.6の値で正相関と判断した.

  • データの準備
  • import pandas as pd
    import pandas_datareader.data as web
    from datetime import datetime
    
    code = pd.read_csv('./data/corpgeneral.csv', header=0)
    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')
        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)})
    
    for company in companies:
        company_code = get_code(code_result, company)
        stock_df = web.DataReader(company_code, 'naver', start, end)
        stocks_of_companies =  stocks_of_companies.join(pd.DataFrame(stock_df['Close'].astype(int)).rename(columns={'Close':company}), on='Date')
        
    corr_data = stocks_of_companies.corr()
    
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # Apple은 'AppleGothic', Windows는 'Malgun Gothic'을 추천
    plt.rcParams['font.family'] = "Malgun Gothic"
    plt.rcParams['axes.unicode_minus'] = False # 마이너스 기호 깨지는 걸 막아줘요
    
    plt.figure(figsize=(10,10))
    sns.heatmap(data = corr_data, annot=True, fmt = '.2f', linewidths=.5, cmap='Blues')
    plt.show()

    #3-独自のレポート作成
  • Googleデータスタジオ