📌 이번 실습 목표
- 한국 주식 & 미국 주식 데이터 조회 방법 익히기
- .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()
- 한글 폰트 설정으로 깨짐 방지
'Python' 카테고리의 다른 글
[주식 분석 프로젝트] 3편 - 기술적 지표 입문 (볼린저 밴드 & RSI) (0) | 2025.04.24 |
---|---|
[주식 분석 프로젝트] 2편 – 이동평균선과 골든/데드크로스 (0) | 2025.04.23 |
Django 웹앱 UI 개선하기 – Bootstrap으로 반응형 페이지 만들기 (0) | 2025.04.21 |
Django 뉴스 분석 웹앱 성능 & UX 개선 – 로딩 표시 + 비동기 처리 (AJAX) (0) | 2025.04.20 |
Django 마이페이지에 CSV 다운로드 기능 추가하기 (검색 결과 저장) (0) | 2025.04.19 |