世界の株価指数の状況
更新日時:2021年10月17日 午前11時56分
※下のチャートは画像として貼り付けているので動きません
◇チャートが動いている様子はTwitter又は解説動画をご覧下さい。
世界の株価指数の変動を世界地図に表しています。
作成日:2022年4月10日
Pythonで作っています。
作り方はこちらからどうぞ。https://t.co/lXH6C74PXh
妙な勧誘は絶対ありませんので、ご安心ください。 pic.twitter.com/lCoPDDIxaC
— あしお ゆたか (@yutaka_ashio) April 10, 2022
動画で解説
動画の目次
【目次】
00:00 世界の株価指数をPythonを使って、世界地図に描画する。
00:06 概要説明
00:44 Pythonコード解説
01:17 世界の株価指数を取得
02:20 データーフレームとして取り込む
05:47 国別コードを取得する
11:00 株価指数と国別コードを結合
14:41世界地図に表す
グルグル動くチャートの作成方法
PythonとPlotlyを使って、世界地図に株価指数を描画する方法を解説します。
世界の株価指数を取得する
ダウンロードしたCSVファイルを、jupterNotebookと同じフォルダーに移動
私の環境ではこの↓↓フォルダ
C:\Users\ashio\PythonLearning\世界の株価をひと目で把握
あえてスクレイピングはしません。
◎スクレイピングをしない理由
大げさなこだわりがあるわけではありませんが、次のような理由でスクレイピングは最小限にしています。
・サイト運営者はスクレイピングを歓迎していない
ほとんどのwebサイトの運営者はスクレイピングよりも、ブラウザで閲覧されることを前提にしているでしょう。
・初心者はスクレイピング許可(禁止していない)サイトか判断出来ない
Pythonならば、ライブラリーを使えば、初心者でもすぐにスクレイピングが出来てしまいます。
スクレイピングの方法を紹介して、不用意にサイトに負荷を掛けるような事態になっては不本意です。
・サイトの変更により、取得できるデーターに誤りがでる
取得したデーターの誤りに気付かない場合、誤った判断に繋がってしまいます。
ダウンロードしたCSVファイルをデーターフレームの形式で取り込む
必要なライブラリーをインポート
1 2 3 4 5 6 7 8 |
#データ分析に必要なライブラリー #株価分析には必須 import pandas as pd #グラフを表示させるライブラリー #動くグラフ(チャート)を簡単に作る事が出来る import plotly.express as px import plotly.graph_objects as go |
ダウンロードしたCSVファイルをデーターフレームの形式で取り込む
import pandas as pd ← このコードでインポートしたpandasを使って取り込みます。
1 2 3 |
#dfwというデーターフレームに <= pd.read_csv という機能を使って ファイル名'株価指数.csv' を取り込む dfw = pd.read_csv('株価指数.csv') |
1 2 |
#取得したデーターフレームを表示 dfw.head() |
変動%は前日との変動率。
今回はこの変動%を世界地図に表します。
チャートに表示する際に、データに’%’が入っていると、正しく表示されないので、変動% の ’%’ を 削除して新しい列に挿入します。
1 2 3 |
dfw['変動率'] = dfw['変動%'].str.strip('%',) dfw.head() |
一番右の列に 変動率 が追加されました。
データー型を見ると変動率は oblect でした。
変動率 を 浮動小数点 float に変換します。
1 2 3 |
dfw['変動率'] = dfw['変動率'].astype(float) dfw.dtypes |
国別コードを取得する
今回は、世界地図に株価指数の変動を表示させます。
取得した株価指数が、どこの国の指数なのか指定する必要があります。
グラフ(チャート)作成ライブラリのPlotlyでは、ISO 3166-1で定められている国名コードを使用出来ます。
今回も、あえてスクレイピングはしません。
コピーしてExcelに貼り付けてファイルを、jupterNotebookと同じフォルダーに保存
私の環境ではこの↓↓フォルダ
C:\Users\ashio\PythonLearning\世界の株価をひと目で把握
◇国名コードを入力
ISO 3166-1で定められている国名コードを入力します。
◇同一国優先度を入力
今回作成するグラフ(チャート)では、国別単位で表現します。
同じ国で複数の株価指数が取得されている場合は、1つを選ぶために優先度を入力します。
エラー回避のために、
CSVで保存する際に UTF-8で保存します。
保存したCSVファイルをデーターフレームの形式で取り込む
下のコードで、保存したCSVファイルをデーターフレームの形式で取り込む
1 2 3 4 5 |
#dfiというデーターフレームに <= pd.read_csv という機能を使って ファイル名'世界の株価指数と国名コード.csv' を取り込む dfi = pd.read_csv('世界の株価指数と国名コード.csv') #データフレームの中身を確認する dfi.head() |
世界地図に表すことが出来るのは、1つの国に対して1つの株価指数だけです。
データフレームのデーターを、同一国優先度 1 だけに絞り込見ます。
新しいデーターフレーム dfi_2 に 同一国優先度 が == 1 だけのデーターを取得します。
1 2 3 |
dfi_2 = dfi[dfi['同一国優先度'] == 1] dfi_2.head() |
世界の株価指数と国名コードを結合する
◇結合の種類
innerとleftとrightとouterの4つです。
inner: 2つのデータフレームの共通しているキーのみ結合する。
left: 左のデータフレームは全部残る。右のテーブルは共通している部分だけ残る。
right: 右のデータフレームは全部残る。左のテーブルは共通している部分だけ残る。
outer: 共通するデータで結合をする。共通で無いデータも残る。
結合は Pandas の merge を使います。
1 2 3 4 5 6 7 8 9 10 11 |
#結合はPandasのmergeを使います。 #データーフレームdfwiに <= マージしたデーターを取得 #左データーは dfi_2 、 右データーは dfw #結合するキーは、 左データーの '株価指数略称' と 右データーの '略称' #結合の種類は、left: 左のデータフレームは全部残る。右のテーブルは共通している部分だけ残る。 dfwi = pd.merge(dfi_2, dfw, left_on='株価指数略称',right_on='略称',how='left') dfwi.head() |
必要な列だけを、新しいデーターフレームに取得
1 2 3 |
dfwi_2 = dfwi[['株価指数名称','株価指数略称','国名コード','変動率']] dfwi_2.head() |
世界の株価指数の変動を世界地図に表す
グラフを表示させるライブラリー
動くグラフ(チャート)を簡単に作る事が出来る
import plotly.express as px
↑↑↑でインポートしたPlotlyを使います
1 2 3 4 5 |
fig = px.choropleth(dfwi_2, locations="国名コード", locationmode = "ISO-3", color="変動率", hover_name="株価指数名称") fig.show() |
※上のチャートは画像として貼り付けているので動きません
◇表現を調整(+タイトル表示)
・世界地図の形を変更
projection=”natural earth”
・タイトルを表示
title=”世界の株価の動き 算出日:2021年7月18日”)
1 2 3 4 5 6 7 |
fig = px.choropleth(dfwi_2, locations="国名コード", locationmode = "ISO-3", color="変動率", hover_name="株価指数名称", projection="natural earth", title="世界の株価の動き 算出日:2021年7月18日") fig.show() |
※上のチャートは画像として貼り付けているので動きません
世界地図の表現
世界地図の形を変更するには、projection=の後に変更する地図の種類を記載します。
projection=”natural earth”
◇世界地図の種類
‘equirectangular’, ‘mercator’, ‘orthographic’, ‘natural earth’, ‘kavrayskiy7’, ‘miller’, ‘robinson’, ‘eckert4’, ‘azimuthal equal area’, ‘azimuthal equidistant’, ‘conic equal area’, ‘conic conformal’, ‘conic equidistant’, ‘gnomonic’, ‘stereographic’, ‘mollweide’, ‘hammer’, ‘transverse mercator’, ‘albers usa’, ‘winkel tripel’, ‘aitoff’, ‘sinusoidal’
まとめ
株式投資をされている方には常識だと思いますが、世界の株式市場の値動き互いに影響を与えています。
特に短期的な値動きを予想するなら、世界の株式市場の動向はかならず確認したいものです。
このブログのチャートも定期的に更新する予定です。
ブログ記事だけでは理解しずらい部分もあると思いますので、動画も合わせてご覧いただければより理解が深まると思います。
この記事を書いた人
あしおゆたか
投資歴21年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。(現在自粛中)
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら