yfinance vs pandas-datareader vs Alpha Vantage 徹底比較

準備・環境構築

本記事はPython学習・情報提供を目的としています。投資判断はご自身の責任で行ってください。

株価データ取得ライブラリの比較概要

Pythonで株価データを取得する方法は複数あります。代表的なのが yfinance・pandas-datareader・Alpha Vantage の3つです。それぞれ特徴が異なるため、用途に合わせて選ぶことが重要です。

比較一覧表

項目yfinancepandas-datareaderAlpha 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を検討してください。

タイトルとURLをコピーしました