# 【実践】Pythonで株価取得～分析・予測まで実践してみよう！

> 当サイト【スタビジ】の本記事では、データサイエンスの実践として株価データを使った分析を解説していきます！実データをもとに学習・予測モデルを作る手法をマスターしていきましょう！

- URL: https://toukei-lab.com/python_stock
- 公開: 2022.11.29 / 更新: 2025.02.25
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、データサイエンスの実践として株価データを使った分析を解説していきます！実データをもとに学習・予測モデルを作る手法をマスターしていきましょう！
:::

こんにちは！スタビジ編集部です！

この記事ではデータサイエンスの実践として”**株価データ**“を使った分析を解説していきます！

:::talk{who="robotan"}
データサイエンスを勉強した！・・・けどなかなか学んだ知識を活かす場面が少ない気がする、、、
:::

:::talk{who="umatan"}
そうだね！せっかく勉強しても実戦で使わないと身についた知識が無駄になってしまう！

データコンペに出るのは一つだけど、人によっては「ハードルが高い！」ってなりそうだから今回は身近な株価データを使った分析をしてみよう！
:::

実際に手を動かしつつ「**株価データの取得**」～「**データの分析**」までの一連の流れをマスターしましょう！

株式投資について興味がある方は以下の記事で勉強法をまとめているので、チェックしてみてください。

<https://toukei-lab.com/stock_learn>

また、株式投資×データ分析の力で株価予測をマスターしたいのであれば当メディア運営サービスの「[スタアカ](https://toukei-lab.com/achademy/)」の「[13.株価予測コース](https://toukei-lab.com/achademy/courses/stock-analysis/)」で詳しく取り上げています！こちらもご参照ください！

:::box
**[スタアカ：13.株価予測コース](https://toukei-lab.com/achademy/courses/stock-analysis/)**

[![スタアカ「株価予測」コース](/wp-content/uploads/2026/10/achademy-course-stock-analysis.jpg)](https://toukei-lab.com/achademy/courses/stock-analysis/)
:::

## 株価データの取得

まず**株価データの取得**について学んでいきましょう！

以下のYoutube動画の中でも簡単に解説していますのであわせてチェックしてみてください！

::youtube{#Vlpu942qxPU}

### ターゲットの指定

今回はデータの取得に”[yfinance](https://pypi.org/project/yfinance/)“というライブラリを使います

これは”Yahoo!Finance’sAPI”から作られたライブラリで、Yahooファイナンスから株価データを取得することが出来ます！

ただ、Yahoo! finance APIは、Yahooの公式のサービスではなく**Yahooの一般公開されているAPIを使用したオープンソースのツール**で個人的な使用のみを目的としてます

なので、<mark>あくまで勉強のために使うように使い方には注意しましょう！</mark>

```javascript
pip install yfinance
```

ライブラリはpipコマンドで簡単にインストール出来ます！

では”Yahoo Finance API”を使って株価データを取得していきましょう

```python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import datetime
import yfinance as yf

#ターゲットを指定
ticker = "AMZN"

#データを収集
data = yf.download(ticker , period='7d', interval = "1d")
```

“ticker”の変数に<mark>ターゲットとなる株の銘柄コードを指定します！</mark>

今回はターゲットをAmazon(銘柄コード”**AMZN**“)を指定しました

変数には複数の株を指定することも出来ます

```python
#ターゲットを指定
tickers = "AMZN AAPL"
```

このように設定すると、AmazonとAppleの情報を一度に取得できます

日本株を指定するときは銘柄コードに東京証券を表す「**.T**」を追加します

```python
#ターゲットを指定
ticker = "4755.T"
```

上記は楽天グループ(銘柄コード：4755)を選択した例となります

### 取得するデータの期間、頻度の選択

ターゲットを指定した後は取得する期間、頻度を決めてデータを取得していきます！

```python
#データを収集
data = yf.download(ticker , period= "7d", interval = "1d")
```

“**download関数**“で取得したい株価データを指定します

引数はいろいろありますが、download(ターゲット, 期間, 頻度)をまずは指定しましょう！

取得したデータがこちらです！

![stock](/wp-content/uploads/2022/02/stock3-min.jpg)

「**期間**」は日単位、月単位、年単位の他、”ytd”(当会計年度)や”max”(全期間)を選択できます

今回は「period= “7d”」と7日間を指定しました

またこの期間に「start/end」を使って、特定の日にちを指定することも出来ます

```python
#データを収集
data = yf.download(ticker, start= "2022-01-01",end="2022-01-15", interval = "1d")
```

2022年1月1日から2022年1月15日のデータを取得しています

「**頻度**」は分単位、時間単位、日単位、週単位、月単位を選択出来ます

今回は「interval = “1d”」と各日のデータを取得しました

また、取得できる頻度のバリエーションは決まっています

```python
[1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo]
```

m⇒分、h⇒時間、d⇒日、wk⇒週、mo⇒月となっています

なので、4h置き(interval = “4h”)みたいな指定をすると<mark>エラーになってしまうので注意してください！</mark>

:::talk{who="umatan"}
“**yfinance**“というライブラリを使って簡単に株価の情報を取得することが出来たね！

また、株価の情報でだけではなくて財務情報も取得できるみたいなので、余裕があったら試してみよう！
:::

## 株価データの可視化

**取得したデータの中身**を詳しく見ていきましょう！

```python
#データを収集
data = yf.download(ticker , period= "7d", interval = "1d")
data
```

yfinanceではデータを[pandas](/python-pandas)のDataFrameの形で返してくれます！

![stock](/wp-content/uploads/2022/02/stock3-min.jpg)

株の情報が取得出来ていますね！Date列がIndexになっています

:::box
- Date：取得日時
- Open：始値
- High：高値
- Low：安値
- Close：終値
- Adj Close：調整後終値
- Volume：出来高
:::

このデータを使えば株価の変動を見たり、株価の予測とか出来そうです！

ではこのデータを可視化してみましょう！

単位が違う「Volume」はいったん削除して折れ線グラフで見てみます！

```python
df = data
df = df.drop("Volume", axis=1)

#可視化する
df.plot()
```

![stock](/wp-content/uploads/2022/02/stock4-min.jpg)

価格の推移が可視化されました、こう見ると週前半からやや右肩下がりでしたが、最後は回復しそうに見えますね

取得するデータの期間や頻度を変更して、<mark>どのように価格が変動しているか見てみましょう！</mark>

次に、株のチャートでよく見るローソク足のグラフを表示します

ローソク足のグラフは”**mplfinance**“というライブラリを使って出力します

```python
import mplfinance as mpf

#ローソク足グラフの表示
mpf.plot(df, type="candle")
```

ライブラリがインストールされていない場合はpipコマンドでインストールしましょう！

![stock](/wp-content/uploads/2022/02/stock5-min.jpg)

ローソク足のグラフを表示させることが出来ました

また、出来高(株売買の取引量)も併せて出力出来ます

全体の流れを見るため、取得するデータの期間を6ヶ月にして可視化します

```python
#データを収集
df = yf.download(ticker, period  = "6mo", interval = "1d")
#ローソク足グラフの表示
mpf.plot(df, type="candle",volume=True,figratio=(10,5))
```

先ほどの関数で「volume=True」を指定します(※Volume列を削除してしまった場合はもう一度データを取り直しましょう！)

![stock](/wp-content/uploads/2022/02/stock6-min.jpg)

価格の変動と出来高の増減を一度に見ることが出来ました！

:::talk{who="umatan"}
株価情報をグラフ化することが出来たね！

ここで可視化して分かった情報(変化が大きい場所等)を深堀りして、<mark>今後の分析に活かしていこう！</mark>
:::

## 株価データの加工

株価の分析をするため、取得したデータを使って新しい指標”**移動平均**“を加えてみましょう！

全体の流れをみるため、期間を6ヶ月にしたデータで分析します

```python
#データを収集
data = yf.download(ticker, period  = "6mo", interval = "1d")
#移動平均を指標に加える
price = df["Close"]
span = 5
df["sma05"] = price.rolling(window=span).mean()
```

移動平均にはpandasの”**rolling関数**“を使用します

rolling関数は窓関数と呼ばれるものを指定した要素の数の幅だけ適用する関数となっています

今回は幅を「5」と設定し、平均値メソッド(mean)を指定しているため、<mark>5日間の終値の平均を5日目に記録しています！</mark>

```python
df
```

![stock](/wp-content/uploads/2022/02/stock7-min.jpg)

移動平均(sma05)が追加されています！ただ、<mark>最初の4日間は５日間分のデータがなくNaNとなっています、、、</mark>

そこで、最初の4日間は取得できる日数の平均を取る(min_periods=1)ように設定します

```python
df["sma05"] = price.rolling(window=span, min_periods=1).mean()
df
```

![stock](/wp-content/uploads/2022/02/stock8-min.jpg)

グラフにするとこのようになります

```python
plt.plot(df.index, df["Close"], label="Close")
plt.plot(df.index, df["sma05"], label="sma05")
plt.legend()
```

![stock](/wp-content/uploads/2022/02/stock9-min.jpg)

[rolling関数](https://note.nkmk.me/python-pandas-rolling/)では、<mark>平均値の他にも中央値や最大値を取得したり幅の中の要素に重みづけを付けることが出来ます</mark>

:::talk{who="umatan"}
rollomg関数の設定を変更してみて、自分の分析に活かしてみよう！
:::

## 株価データの分析

取得した株価データを使って統計的な分析を行っていきましょう！

今回は6ヶ月間の株価データに対して”**ARIMAモデル**“を使った時系列データ分析を行います

“ARIMAモデル”は時系列データの差分をとって差分のデータに落とし込むことで定常にし、ARMAモデルを適用するモデルで<mark>株価などの非定常性データに用いられます！</mark>

時系列データ分析について詳しく知りたい方は下記の記事をチェックしてみてください！

<https://toukei-lab.com/%e6%99%82%e7%b3%bb%e5%88%97%e3%83%87%e3%83%bc%e3%82%bf%e5%88%86%e6%9e%90>

まずは取得したデータを学習データ(70%)とテストデータ(30%)に分けます

```python
#ARIMAモデル データ準備
train_data, test_data = df[0:int(len(df)*0.7)], df[int(len(df)*0.7):]
train_data = train_data['Close'].values
test_data = test_data['Close'].values
```

今回はランダムではなく日時で7：3に分割して使用します

続いてARIMAモデルを実装していきます

ARIMAモデルはstatsmodelsライブラリから呼び出して使用します

```python
from statsmodels.tsa.arima.model import ARIMA
```

statsmodelsライブラリが入っていない場合はインストール(pip install statsmodels等)しましょう！

ARIMAモデルはARモデルとMAモデルを組み合わせで、下記の3つのパラメータ(p,d,q)を入力します

- p\:ARモデルのパラメータで、遅延観測値の数
- d\:観測値の段差
- q\:MAモデルのパラメータで、移動平均ウィンドウのサイズ

```python
# ARIMAモデル実装
model = ARIMA(train_data, order=(6,1,0))
model_fit = model.fit()
print(model_fit.summary())
```

今回はパラメータ(p,d,q)にp=6、d=1、q=0と選択しました

実際にはパラメータをチューニングして最適な値を見つけてモデル構築しましょう！

では実際にARIMAモデルを用いて予測をしてみます

```python
#ARIMAモデル 予測
history = [x for x in train_data]
model_predictions = []
for time_point in range(len(test_data)):
#ARIMAモデル 実装
    model = ARIMA(history, order=(6,1,0))
    model_fit = model.fit()
#予測データの出力
    output = model_fit.forecast()
    yhat = output[0]
    model_predictions.append(yhat)
#トレーニングデータの取り込み
    true_test_value = test_data[time_point]
    history.append(true_test_value)
```

ARIMAモデルでは差分のデータを使うため、<mark>観測したテストデータを毎回取り込み、モデルを再構築しながら進めていきます！</mark>

実際に取得した予測データとテストデータを比較してみましょう

```python
#可視化
plt.plot(test_data, color='Red', label='実績値')
plt.plot(model_predictions, color='Blue', label='予測値')
plt.title('Amazon 株価予測値', fontname="MS Gothic")
plt.xlabel('日', fontname="MS Gothic")
plt.ylabel('Amazon 株価', fontname="MS Gothic")
plt.legend(prop={"family":"MS Gothic"})
plt.show()
```

![stock](/wp-content/uploads/2022/02/stock12-min.jpg)

日数のずれがありますが、おおむね増減の傾向が近しいモデルを構築出来た感じですね！

:::talk{who="umatan"}
パラメータの値を変えたりしながら、予測精度を高めていこう！
:::

## Pythonで株価データの分析まとめ

ここまでご覧いただきありがとうございました！

今回は”**yfinance**“というライブラリを使ってpythonで株情報の扱い方を学んでいきました。

「**データの取得**」～「**データの分析**」について実際に手を動かしながら、実データを分析するための準備が出来たと思います！

仮想通貨のPython分析やドル円のPython分析については以下の記事でまとめていますのでこちらもあわせてチェックしてみてください！

<https://toukei-lab.com/virtual_currency>

<https://toukei-lab.com/dollar-yen-ai>

また、ARIMAモデルを含む3種のAIモデルについて需要予測をテーマに説明した以下の記事では、Python実装も含め解説しています！

<https://toukei-lab.com/demand-forecast>

ここからは、ご自身で<mark>統計手法や機関学習を用いて株価の予測などに挑戦してみましょう！</mark>

:::talk{who="umatan"}
様々なデータを使って、分析力を磨いていこう！
:::

株式投資×データ分析の力で株価予測をマスターしたいのであれば当メディア運営サービスの「[スタアカ](https://toukei-lab.com/achademy/)」の「[13.株価予測コース](https://toukei-lab.com/achademy/courses/stock-analysis/)」がオススメ！

:::box
**[スタアカ：13.株価予測コース](https://toukei-lab.com/achademy/courses/stock-analysis/)**

[![スタアカ「株価予測」コース](/wp-content/uploads/2026/10/achademy-course-stock-analysis.jpg)](https://toukei-lab.com/achademy/courses/stock-analysis/)
:::

当メディアが運営するAIデータサイエンス特化スクールの「[スタアカ（スタビジアカデミー）](https://toukei-lab.com/achademy/)」を受講することで株式投資×分析と共に分析の土台となる様々なスキルが身につきます！

[**スタアカ（スタビジアカデミー）**](https://toukei-lab.com/achademy/)

[![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)](https://toukei-lab.com/achademy/)

公式サイト：<https://toukei-lab.com/achademy/>

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【Pythonの学習範囲】</th>
<td>データサイエンスを網羅的に学ぶ<br>
実践的なビジネスフレームワークを学ぶ<br>
実際に実データを使った様々なワークを行う</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です！

<mark>プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1（30分×4回）を実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコース</mark>になっています！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}

また、データサイエンティストになるための独学ロードマップについて知りたい方はぜひ以下の記事をチェックしてみてください

<https://toukei-lab.com/data-scientist>