はじめに
株価データは、代表的な時系列データの一つですが、Pythonはこの時系列データを取り扱うのを非常に得意としています。特に、Pythonライブラリの一つであるpandasはもともと金融データを扱うために開発されたため、時系列データの分析に強力な機能を数多く備えています。
今回やることは非常にシンプルで、下記の2点だけです。(すべてIPython Notebook上で行っています。)
1. Google Financeからトヨタの株価データを取得する。
2. 取得した株価データを時系列データとしてプロットする。
株価データの取得
まず始めに、下記のように必要となるライブラリをインポートします。
import pandas as pd from pandas import Series, DataFrame import numpy as np import matplotlib.pyplot as plt %matplotlib inline
最後の1行は、描画するグラフをIPython Notebook上にそのまま埋め込むために書いたものです。
pandasの標準機能であるDataReaderを使えばYahooやGoogleなどから簡単に株価を取得できます。
#from pandas.io.data import DataReader from pandas_datareader.data import DataReader #モジュールが変わったため変更 from datetime import datetime end = datetime.now() start = datetime(end.year - 1, end.month, end.day) toyota = DataReader('TM', 'google', start, end) toyota.head()
ここで、注意してもらいたいのが、今回Google Financeから取得したデータは、東京証券取引所のものではなく、ニューヨーク証券取引所つまりアメリカの株式市場の情報です。今回はより簡単に株式データを取得するため、Google Finance が提供しているAPIを使いました。(実際に、日本の株式市場のデータを取得するためには、少し手間はかかりますが、スクレイビングでできます。)
上記のコードでendとstartはいつからいつまでのデータを取得するかを決めています。endをnow(現在)として、startを現在から1年前までとしています。つまり1年分の株価データを取得しています。取得したデータは"toyota"に格納しており、表のようなデータが入っていることがわかると思います。ここで最後の行のheadは、データのうち5行分だけを表示するために書いたものです。
株価データの可視化
MatplotlibはPythonでグラフを描画するときに非常に便利なライブラリです。今回プロットに使うデータは、上の表でCloseのカラムのデータです。
次のように1行書くだけで簡単に株価を時系列データとして描くことができます。
toyota['Close'].plot(legend=True, grid=True)
おわりに
今回は、Pythonを用いて株価データの取得とその可視化という非常にシンプルな作業を行いました。現在、Pythonは金融・経済データの実践的な分析ツールとして絶大な力を持っており、非常に注目されています。Pythonによるデータ分析を極めていくと、人工知能を使って、システムトレードで大儲け、なんてこともできるかもしれませんね。次回は、複数の企業の株価を比較し、その相関関係を分析するといった過程を書きたいと思います。
ちなみに、Pythonでデータ分析をするならオライリーの下の書籍が一番いいです。NumPyやpandasを使ったデータ分析がかなり詳しく解説されています。特に今回のような時系列データを取り扱うノウハウは網羅されており、他に同じような書籍は見当たらないため、Pythonでデータ分析をやりたい人にとってはほぼ一択と言っていいと思います。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/12/26
- メディア: 大型本
- この商品を含むブログ (19件) を見る