본문 바로가기
Python

[주식 분석 프로젝트] 1편 – Jupyter Notebook으로 한국/미국 주식 데이터 조회하기

by ramzee 2025. 4. 22.

📌 이번 실습 목표

  • 한국 주식 & 미국 주식 데이터 조회 방법 익히기
  • .tail()으로 최신 데이터 확인
  • 수익률 계산 및 시각화
  • matplotlib 한글 폰트 깨짐 해결

🛠️ 1. 필수 라이브러리 설치

pip install yfinance pandas matplotlib seaborn finance-datareader

🧰 2. 라이브러리 불러오기 + 한글 폰트 설정

import yfinance as yf
import FinanceDataReader as fdr
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 한글 폰트 설정
plt.rcParams['font.family'] = 'Malgun Gothic'  # Windows
plt.rcParams['axes.unicode_minus'] = False

💡 Mac 사용자: plt.rcParams['font.family'] = 'AppleGothic' 설정


🇺🇸 3. 미국 주식 데이터 조회 (Apple - AAPL)

ticker_us = yf.Ticker("AAPL")
df_us = ticker_us.history(period="6mo")  # 최근 6개월
df_us.head()

✅ 출력 예시 (head)

Date		Open	High	Low	Close	Volume	Dividends	Stock Splits					
2024-09-23 00:00:00-04:00	226.840741	228.946108	225.314102	225.972656	54146000	0.0	0.0
2024-09-24 00:00:00-04:00	228.147870	228.846345	225.234284	226.870682	43556100	0.0	0.0
2024-09-25 00:00:00-04:00	224.436039	226.790857	223.528049	225.872879	42308700	0.0	0.0
2024-09-26 00:00:00-04:00	226.800837	227.998199	224.914988	227.020355	36636700	0.0	0.0
2024-09-27 00:00:00-04:00	227.958291	229.015961	226.800835	227.289749	34026000	0.0	0.0

✅ 최신 데이터 (tail)

df_us.tail()
Date	Open	High	Low	Close	Volume	Dividends	Stock Splits						
2025-03-17 00:00:00-04:00	213.309998	215.220001	209.970001	214.000000	48073400	0.0	0.0
2025-03-18 00:00:00-04:00	214.160004	215.149994	211.490005	212.690002	42432400	0.0	0.0
2025-03-19 00:00:00-04:00	214.220001	218.759995	213.750000	215.240005	54385400	0.0	0.0
2025-03-20 00:00:00-04:00	213.990005	217.490005	212.220001	214.100006	48862900	0.0	0.0
2025-03-21 00:00:00-04:00	211.559998	218.839996	211.279999	218.270004	93954500	0.0	0.0

📊 미국 주가 시각화

df_us['Close'].plot(title='Apple 주가 추이', figsize=(12, 4))
plt.ylabel('주가 ($)')
plt.grid(True)
plt.show()


🇰🇷 4. 한국 주식 데이터 조회 (삼성전자 - 005930)

df_kr = fdr.DataReader('005930', '2023-10-01')
df_kr.head()
df_kr.tail()

✅ 출력 예시

Date		Open	High	Low	Close	Volume	Change				
2025-03-17	55500	57800	55400	57600	35559021	0.053016
2025-03-18	58800	59000	57300	57600	28138594	0.000000
2025-03-19	57400	59200	57400	58500	29421759	0.015625
2025-03-20	59200	60300	58500	60200	34989004	0.029060
2025-03-21	60900	61700	60400	61700	38236233	0.024917

📊 삼성전자 주가 시각화

df_kr['Close'].plot(title='삼성전자 주가 추이', figsize=(12, 4), color='blue')
plt.ylabel('주가 (원)')
plt.grid(True)
plt.show()


📈 5. 일간 수익률 계산

df_us['Daily Return'] = df_us['Close'].pct_change()
df_kr['Daily Return'] = df_kr['Close'].pct_change()

✅ 미국 주식 수익률 예시

df_us[['Close', 'Daily Return']].tail()
Date		Close	Daily Return
2025-03-17 00:00:00-04:00	214.000000	0.002389
2025-03-18 00:00:00-04:00	212.690002	-0.006121
2025-03-19 00:00:00-04:00	215.240005	0.011989
2025-03-20 00:00:00-04:00	214.100006	-0.005296
2025-03-21 00:00:00-04:00	218.270004	0.019477

📊 수익률 시각화

df_us['Daily Return'].plot(title='Apple 일간 수익률', figsize=(12, 3))
plt.axhline(0, color='gray', linestyle='--')
plt.grid(True)
plt.show()


🔤 6. 한국 종목 코드 전체 보기

stock_list = fdr.StockListing('KRX')
stock_list[['Code', 'Name']].head()

✅ 출력 예시

	Code	Name
0	005930	삼성전자
1	000660	SK하이닉스
2	207940	삼성바이오로직스
3	373220	LG에너지솔루션
4	005380	현대차

 


📂 7. CSV로 저장하기

df_us.to_csv("apple_6months.csv")
df_kr.to_csv("samsung_6months.csv")

✅ 오늘의 요약 정리

  • 미국 주식: yfinance
  • 한국 주식: FinanceDataReader
  • .tail()로 최신 데이터 확인
  • 수익률: .pct_change()
  • 한글 폰트 설정으로 깨짐 방지