本記事はPython学習・情報提供を目的としています。投資判断はご自身の責任で行ってください。
株価データ取得ライブラリの比較概要
Pythonで株価データを取得する方法は複数あります。代表的なのが yfinance・pandas-datareader・Alpha Vantage の3つです。それぞれ特徴が異なるため、用途に合わせて選ぶことが重要です。
比較一覧表
| 項目 | yfinance | pandas-datareader | Alpha Vantage |
|---|---|---|---|
| 料金 | 無料 | 無料(一部有料) | 無料プランあり(制限付き) |
| APIキー | 不要 | 一部必要 | 必要 |
| 日本株対応 | ◎ | △ | ◎ |
| リアルタイムデータ | △(15分遅延) | ✕ | ◎(有料) |
| データ取得制限 | なし(非公式) | あり | あり(無料:25回/日) |
| 安定性 | △(仕様変更リスク) | △(メンテ停滞) | ◎(公式API) |
| 初心者向け | ◎ | ○ | △ |
yfinanceの使い方
最もシンプルで使いやすいライブラリです。Yahoo Financeのデータを非公式に取得します。
import yfinance as yf
# 基本的な株価取得
ticker = yf.Ticker("7203.T") # トヨタ自動車
# 期間指定
df = ticker.history(period="1y") # 直近1年
df = ticker.history(start="2024-01-01") # 開始日指定
df = ticker.history(start="2024-01-01", end="2024-12-31")
# 財務情報も取得可能
info = ticker.info
print(f"PER: {info.get('trailingPE', 'N/A')}")
print(f"配当利回り: {info.get('dividendYield', 0)*100:.2f}%")
print(df.head())
pandas-datareaderの使い方
[p]Yahoo! Finance以外にも複数のデータソースに対応しています。import pandas_datareader.data as web
from datetime import datetime
# FREDから経済指標データを取得(APIキー不要)
start = datetime(2020, 1, 1)
end = datetime(2024, 12, 31)
# 米国10年債利回り
treasury = web.DataReader("DGS10", "fred", start, end)
print(treasury.tail())
# pip install pandas-datareader が必要
Alpha Vantageの使い方
公式APIなので安定性が高いです。無料プランは1日25リクエストまで。
import requests
import pandas as pd
API_KEY = "YOUR_API_KEY" # alphavantage.coで無料取得
def get_stock_data(symbol, api_key):
url = f"https://www.alphavantage.co/query"
params = {
"function": "TIME_SERIES_DAILY",
"symbol": symbol,
"outputsize": "compact",
"apikey": api_key
}
response = requests.get(url, params=params)
data = response.json()
df = pd.DataFrame(data["Time Series (Daily)"]).T
df.index = pd.to_datetime(df.index)
df.columns = ["open", "high", "low", "close", "volume"]
df = df.astype(float)
return df.sort_index()
df = get_stock_data("IBM", API_KEY)
print(df.tail())
どれを選ぶべきか
| 用途 | おすすめ |
|---|---|
| 個人学習・バックテスト | yfinance(最もシンプル) |
| 経済指標データが必要 | pandas-datareader(FRED連携) |
| 本番システム・安定性重視 | Alpha Vantage(公式API) |
| リアルタイム取引 | 証券会社のAPI(SBI/楽天など) |
まとめ
学習・バックテスト目的ならyfinanceが最もおすすめです。APIキー不要で日本株にも対応しており、コード量も最少です。より本格的なシステムを構築する際はAlpha Vantageの公式APIを検討してください。

