Pythonコード集

【Pythonコード集】米国株のティッカーコードを取得するなら『Pandas』を使いこなそう!後編

【この記事は3分で読めます】

前回の記事では、米国株のティッカーコードをpandasで簡単に取得するコードをご紹介しました。

未読の方は、以下のリンク先からご覧ください。

前回の記事
【Pythonコード集】米国株のティッカーコードを取得するなら『Pandas』を使いこなそう!前編

続きを見る

 

今回は、前回ご紹介したPythonコードの解説編となります。

pandasを使えば、いかに株式投資の情報を効率的に得られるかがわかります。

ぜひ最後までご覧ください!


今回のサマリー

・銘柄ティッカーをPythonコードで簡単に取得する方法

・pandasの効率的な使い方

・Pythonを効率的に学ぶ方法


Udemyおすすめの講座
・Pythonの基礎から応用まで一気に学ぶならこのコース おすすめ度
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

 

・データサイエンスを学ぶならこの2コース 2コースのおすすめ度
【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

 

・Python、ファイナンス、英語を一気に学ぶ ”欲張りコース” おすすめ度
Python for Finance: Investment Fundamentals & Data Analytics
※このコースには日本語の字幕がついています。
Python、ファイナンスそして英語の力を同時にレベルアップするコースとしては、Udemy最強のコースです。
ジェイもこのコースで学び、今も復習で使っています。


この記事の対象となる人

こんな人におすすめ

  • Pythonで米国株のティッカーコードを効率的に取得したい人
  • Pythonを学びたいと思っている人

 

この記事でわかること

わかること

  • pandasの重要さと便利さ

Pythonコードの解説

まずはいつも通り必要なライブラリのインポートからです。

ライブラリのインポート

import pandas as pd
import pandas_datareader as web

 

今回の主役はー

ライブラリの主役

  • pandas
  • pandas_datareader

です。

pandasは、Python版のエクセルです。

pandas_datareaderは、Yahoo!finance USから株式のデータを取得するためによく用いられるライブラリのひとつです。

コード末尾に『as 〇〇』を付けることで、後に書くコードを省略(〇〇)のかたちで書くことができます。

 

株式データのインポート

data = pd.read_html('https://en.wikipedia.org/wiki/Dow_Jones_Industrial_Average')

 

このコードが、今回の重要なポイントです!

株価指数に採用されているティッカーコードを一気に取得する場合ー

ポイント

ティッカーコードを ”テーブル形式” で載せているサイトを探す

ことが必要です。

株価指数のティッカーコードの一覧がテーブル形式で載っているサイトならどこでもOKです。

”テーブル形式”、というのがポイントです。

今回はウィキペディアのサイトを使いました。

 

ティッカーコードのみを抽出する

data = data[1]

 

なぜ、”テーブル形式”じゃないといけないのか?

それは、pandasで特定の一覧表を簡単に抽出するためです。

変数『data』の後に[ ]を付けて、あとは対象となる一覧表の番号を入れるだけです。

ウィキペディアのサイトでは、30のテーブルデータが載っています。

その中で、2番目に株式のティッカーコードの一覧があります。

なので『data[1]』として、株式のティッカーコード一覧だけを抽出する、というわけです。

 

ここまでのコードを実行するとー

・実行結果

ダウ平均に採用されている銘柄のティッカーコード(Symbol)を含め、主要な株式データを一気に取得することができます!

 

必要なデータだけをピックアップ

今回は、ダウ平均に採用されている銘柄ティッカーを一気に取得することが目的です。

なので、取得したい情報だけをピックアップしてみましょう。

data = data[['Company', 'Symbol']]

 

ティッカーコードのみでは、どの会社かわからなくなります。

なので、今回は会社名も同時に取得してみました。

変数『data』の後に、ひとつだけ[ ]を付けて、その中に抽出したいカラム名を入れると、ひとつだけのデータが抽出できます。

複数のカラムを取得したい場合はー

複数のカラムを取得する

[ ]を二つ重ねる

ことで、複数のカラムとそれらのデータを取得することができます。

今回でいえば、data[['Company', 'Symbol']] となります。

 

ここまでのコードを実行するとー

・実行結果

会社名(Company)とティッカーコード(Symbol)のみが、抽出できました!

こうすれば、このティッカーコードはどこの会社だっけ?という事態を避けることができます。

 

カラムの種類を確認

次は、カラム『Symbol』を使って、カラムの数と種類を確認してみましょう。

ticker_data = web.get_quote_yahoo(data['Symbol'])
ticker_data

 

まずは、カラム『Symbol』のみで、ダウ平均に採用されているすべての銘柄情報を取得してみましょう。

▷web.get_quote_yahoo(data['Symbol'])

銘柄の情報を一気に取得する時はー

情報を一気に取得するコード

get_quote_yahoo

を使います。

取得したデータを、変数『ticker_data』に入れて、中身を確認するとー

・実行結果

ダウ平均に採用されている30銘柄のカラム数が、全部で『77』あることがわかりました。

 

しかし、中身まではわかりません。

そこで、変数『ticker_data』の後に『.columns』を追記するとー

ticker_data.columns

 

・実行結果

カラムの種類が簡単にわかります!

 

必要な情報だけをピックアップしてみよう

いよいよ最後です。

上のカラムの中から、株式の分析で重要なカラムの情報だけをピックアップしてみましょう。

今回はー

情報のピックアップ

  • epsForward
  • epsTrailingTwelveMonths
  • averageAnalystRating

 

上3つの情報をピックアップしてみました。

EPSは、米国株の企業決算で必ず見るべき情報のひとつです。

また、アナリストの推奨レーティングも投資の参考指標となります。

tick_info = ticker_data[['epsForward', 
      'epsTrailingTwelveMonths', 
      'averageAnalystRating']].sort_values(by='epsForward', ascending=False)

 

上で述べたとおり、複数のカラムをピックアップする場合は、[ ]を二重にします。

今回では、"ticker_data[['epsForward', 'epsTrailingTwelveMonths', 'averageAnalystRating']]" のコードがそれに当たります。

さらに今回は、epsForward(予想EPS)を基準に、一番高い値から順番に並び替えるコードを加えています。

それがー

▷.sort_values(by='epsForward', ascending=False)

です。

ポイントは引数にあります。

sortの引数

  • by:並び替えの基準となる項目を指定
  • ascending:昇順 / 降順を指定

今回はbyを『epsForward』として、ascendingを『False』にすることで、大きいな値から順番に表示するようコードを書きました。

ちなみに、ascendingを『True』にすると、小さい値から順番に表示されます(並び替えることができます)。

 

ここまでのコードを実行するとー

・実行結果

予想EPS(epsForward)、過去12ヶ月のEPS(epsTrailingTwelveMonths)そしてアナリストによる平均レーティング(averageAnalystRating)のみのデータを簡単に取得することができました!

 

おまけ

さて、このセクションはおまけです。

ナスダックのティッカーもたった2行で楽々ゲット

米国株の醍醐味といえば、グロース株投資です。

グロース株が多く採用されている株価指数が、ナスダック総合指数です。

しかし、ナスダック総合指数に採用されている銘柄の数は膨大です。

なので、すべてを載せているサイトはなかなか見つかりません。

 

しかし、pandasを使えば、膨大なナスダック総合指数の銘柄ティッカーをたったの2行で取得できます!

from pandas_datareader.nasdaq_trader import get_nasdaq_symbols as nsdq

df = nsdq()

▷.nasdaq_trader

pandasの後ろに『.nasdaq_trader』と付けます。

そして『get_nasdaq_symbols』をインポートするだけです。

 

その後、変数『df』に取得したデータを入れて実行するとー

・実行結果

全部で『11,647』の銘柄と『11』のカラムデータを一気に取得することができました!

 

この記事を読んで、あらためてPythonとpandasの便利さがわかったと思います。

Pythonやpandasについてもっと知りたい!という方は、以下の『Pythonを効率よく学ぶ方法』をご覧ください。


Pythonを効率よく学ぶ方法

今回の記事を読んでー

Pythonって便利だな!

私もPythonを学んでみたい!

今回の記事を読んでそう思われた方は、以下のリンク先をご覧ください。

本気でPythonを学びたいなら

Pythonを学ぼう

 

Pythonを学ぶメリットがわかります。

そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。

この記事と出会ったのも何かの縁です。

ぜひチャレンジしてみてください!


Udemyおすすめの講座
・Pythonの基礎から応用まで一気に学ぶならこのコース おすすめ度
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

 

・データサイエンスを学ぶならこの2コース 2コースのおすすめ度
【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

 

・Python、ファイナンス、英語を一気に学ぶ ”欲張りコース” おすすめ度
Python for Finance: Investment Fundamentals & Data Analytics
※このコースには日本語の字幕がついています。
Python、ファイナンスそして英語の力を同時にレベルアップするコースとしては、Udemy最強のコースです。
ジェイもこのコースで学び、今も復習で使っているコースです。


まとめ

・Pythonを使えば効率的に時間が使える

・pandasを使えば米国株のティッカーコードを簡単に取得できる

・pandas_datareaderならナスダック指数のティッカーコードを爆速で取得できる

・Pythonを効率的に学びたい方はこちら

 

最後に、今回のPythonコードをまとめます。

コピペして色々と遊んでみてください。

Pythonコード:まとめ

#ダウ平均のティッカーコード
import pandas as pd
import pandas_datareader as web

data = pd.read_html('https://en.wikipedia.org/wiki/Dow_Jones_Industrial_Average')
data = data[1]
data = data[['Company', 'Symbol']]

ticker_data = web.get_quote_yahoo(data['Symbol'])
ticker_data.columns

tick_info = ticker_data[['epsForward', 
      'epsTrailingTwelveMonths', 
      'averageAnalystRating']].sort_values(by='epsForward', ascending=False)


#ナスダック総合指数のティッカーコード
from pandas_datareader.nasdaq_trader import get_nasdaq_symbols as nsdq

df = nsdq()

最後に『tick_info』、『df』と実行してください。

それぞれの実行結果が表示されます。

 

今回は以上です。

最後までお読みいただき、ありがとうございました!


注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

-Pythonコード集