なぜ、Pythonプログラミングの勉強を始めたのか。
そういえば、なぜ、セカンドキャリアを目指すのにプログラミングなのか。なぜ、プログラミング言語の中でPythonを選んだのか、についてまだお知らせしていませんでした。今後プログラミングを始めてみたいという方の参考になればと思い、今回は、プログラミングを始めた理由、Pythonを選んだ理由について、書きたいと思います。
なぜプログラミングなのか
人生100年ライフ時代を迎えて、長生きリスクがクローズアップされてきました。年金も減る可能性が高く、生きている限り、働き続けることも念頭に置く必要がある時代の到来。自分自身に照らすと、あと数年で会社を退職したら、何をするのか。逆に、いつまでも働き続けるためには、何らかのスキルが必要ではないのか思っていたところ、経済産業省が「2030年にはIT人材が60万人不足する」との調査結果を発表してました。やはり不足人材が多いほど、それだけニーズがあるのだから、きっと年をとっても仕事があるはず、との期待から、プログラミングをやってみようと思った次第です。甘いかも、ですが。
それと、私自身が中高生のころ、ちょうどパソコンが世の中に出始めた頃ですが、BASICでプログラムを組んでみたり、好きだった記憶があります。この年になって、プログラミングをいざ始めて見ると、すごく楽しいんですよね。子供の頃、好きだったことは、年をとっても変わらないということですかね。これから年をとっても続けて行くには、やはり好きなことが良いのではないか、と思ったことも理由のひとつです。
なぜPythonなのか
プログラミング言語 | 2018 | 2013 | 2008 | 2003 | 1998 | 1993 | 1988 |
---|---|---|---|---|---|---|---|
Java | 1 | 2 | 1 | 1 | 16 | - | - |
C | 2 | 1 | 2 | 2 | 1 | 1 | 1 |
C++ | 3 | 4 | 3 | 3 | 2 | 2 | 5 |
Python | 4 | 7 | 6 | 11 | 23 | 18 | - |
C# | 5 | 5 | 7 | 8 | - | - | - |
Visual Basic .NET | 6 | 12 | - | - | - | - | - |
JavaScript | 7 | 10 | 8 | 7 | 20 | - | - |
PHP | 8 | 6 | 4 | 5 | - | - | - |
Ruby | 9 | 9 | 9 | 18 | - | - | - |
R | 10 | 23 | 46 | - | - | - | - |
Perl | 12 | 8 | 5 | 4 | 3 | 11 |
(出所)TIOBE(the software quality company)
- Pythonは、1991年に開発されましたので、歴史は長い言語です。近年、人工知能分野でよく使われるため、注目を集めるようになってきています。
- また、Pythonは文法がシンプル、かつコードの分量が少なく記述でき、読みやすいという特徴があります。そのため、私のような初心者には非常に学びやすい言語だと思います。また、様々なライブラリが無料で公開されており、汎用性が高いことも特徴の一つです。
- 更に、人工知能分野だけでなく、Webアプリケーションや組み込みアプリケーションでも使われており、代業的なサービスとしては、YouTubeやインスタグラム、Evernoteがあるようです。
- 加えて、アメリカでは中高生のプログラミングの授業でPythonが教えられるようになっており、ExcelでもPythonを使えるようにすることを検討中との話もあります。
以上のようなことを総合的に考えて、Pythonの勉強を始めることにしました。 参考になりましたでしょうか?
今後、どこかのタイミングで、どのように学んでいるかについても書きたいと思います。 それでは。
個人投資家のためのWebスクレイピング(5)〜 Pythonで「通貨インデックス」を作成してみよう
さて、個人投資家向けのスクレイピングシリーズが続いていますが、今回は、Webスクレイピングを利用して「通貨インデックス」を作成してみましょう。
「日経ヴェリタス」の記事の中に、毎週連載されている「世界通貨番付」というものがあります。最近、身近に日経ヴェリタスがないので、「世界通貨番付」と同じように、各通貨が今強くなっているのか弱くなっているのか、通貨全体の中での強弱が分かるものが作れたらなと思っておりました。そうしないと、ドル円やユーロ円だけを見がちなので、全体感が掴めないからです。さらに、過去の推移も分かるともっといいですよね。
そこで、またまたまたPythonの出番です!
日経ヴェリタスを見てみると、「日経通貨インデックス 日本経済新聞社が算出する実効為替レートの指標。25通貨が対象。2008年=100」と記載されています。
どうやら実効為替レートを見れば良いみたい。
日銀のホームページによれば、実効為替レートとは、
実効為替レートは、特定の2通貨間の為替レートをみているだけでは捉えられない、相対的な通貨の実力を測るための総合的な指標です。具体的には、対象となる全ての通貨と日本円との間の2通貨間為替レートを、貿易額等で計った相対的な重要度でウエイト付けして集計・算出します。
とのことです。また、
最新の値は、国際決済銀行(Bank for International Settlements、BIS)公表の、Broadベースの実効為替レートを利用しています。同系列の作成方法やカバレッジ、ウエイト等の詳細については、BISのホームページを参照してください。
とありますので、早速、BISホームページに行ってみましょう。
https://www.bis.org/statistics/eer.htm
Daily data(更新は週次のようです)のCSVファイルがありますので、これを取得して展開していけば良いことが分かります。CSV horizontalとCSV verticalがありますが、時系列データなので縦に時系列データが蓄積されているCSV verticalを取得します。
import requests import zipfile, io import os # BISホームページで実効為替レートが表示されているページのCSV verticalを指定します。 url = 'https://www.bis.org/statistics/full_webstats_eer_d_dataflow_csv_row.zip' # requestsライブラリのgetメソッドを使って、ファイル情報をResponseオブジェクトとして取得 res = requests.get(url) # Responseオブジェクトからバイナリデータを取り出し、ZipFileオブジェクトに変換し、解凍します。 z = zipfile.ZipFile(io.BytesIO(res.content)) z.extractall() # 解凍して得られたcsvファイルを、BISフォルダの下に移動します。 os.rename('WEBSTATS_EER_D_DATAFLOW_csv_row.csv', 'BIS/WEBSTATS_EER_D_DATAFLOW_csv_row.csv')
その後は、PandasライブラリのDataFrameを使って、データを加工していきます。
import pandas as pd # csvファイルを取り込み、DataFrameオブジェクトに転換します。その際に、余分な行をskipします。 df = pd.read_csv('BIS/WEBSTATS_EER_D_DATAFLOW_csv_row.csv', skiprows=[0,1,2,4]) # データのうち、日付データとBisがBroadデータと呼んでいる61通貨のヒストリカルデータのみ抽出 # そして、データがない行を削除したものをfx_broadとします。 fx_broad = df.iloc[:, :62].dropna()
この段階でfx_broad
を表示させると以下の通り。
日付は現在Stringオブジェクトになっていますので、Datetimeオブジェクトに変換した上で、indexとして設定しましょう。 ついでにindex名をDate
にしておきます。
df['Reference area'] = pd.to_datetime(df['Reference area'], format='%Y-%m-%d') fx_broad.set_index(keys='Reference area', inplace=True) fx_broad.index.name = 'Date'
現時点でのデータ系列は実効為替レートそのものなので、これをインデックス化します。世界通過番付における日経通貨インデックスが2008年を100としていますので、今回は2008-01-01
が100となるように計算してみましょう。また、日経通貨インデックスが25通貨なので、同様に25通貨のDataFramefx_index_main
を作成します。
fx_index = fx_broad / fx_broad.loc['2008-01-01',:] * 100 main_fx_list = ['AE:United Arab Emirates','AU:Australia','BR:Brazil','CA:Canada','CH:Switzerland', 'CN:China','DK:Denmark','GB:United Kingdom','HK:Hong Kong SAR', 'ID:Indonesia','IN:India','JP:Japan','KR:Korea','MX:Mexico', 'MY:Malaysia','NO:Norway','NZ:New Zealand','RU:Russia','SA:Saudi Arabia', 'SE:Sweden','SG:Singapore','TH:Thailand','TW:Chinese Taipei', 'US:United States','XM:Euro area'] fx_index_main = fx_index[main_fx_list]
さらに、pct_changeメソッドで週次、半年、2年、5年のインデックスの変化率を計算し、その結果を表示しましょう。
wk_chg = fx_index_main.pct_change(periods=5).iloc[-1]* 100 hy_chg = fx_index_main.pct_change(periods=130).iloc[-1] * 100 y2_chg = fx_index_main.pct_change(periods=520).iloc[-1] * 100 y5_chg = fx_index_main.pct_change(periods=1300).iloc[-1] * 100 table = pd.DataFrame([fx_index_main.iloc[-1], wk_chg, hy_chg, y2_chg, y5_chg], index=['FX_index', 'weekly-change', 'half-year-change', '2-year-change', '5-year-change']) table_T = table.T.sort_values(by='weekly-change', ascending=False)
table_T
を表示すると
となります。日経通貨インデックスとは若干FX_indexの数値もその他変化率の数値も異なっていますが、全体感や方向感は良いようです。数値が異なっているのは、日経通貨インデックスが2008年=100(年平均値?)としているのに対し、ここでは2008年1月1日のデータを100としていることによるものかなぁと勝手に推測しています。
今後いろいろと修正が必要かと思いますが、取り敢えず「通貨インデックス」もどきが出来ました。
なお、変化幅を5年の変化率をもとにソートして、描画してみましたので、アップします。 また、今回利用したJupyter Notebookもアップしておきますね。
import matplotlib.pyplot as plt plt.style.use('ggplot') table_T.sort_values(by='5-year-change', ascending=True).drop('FX_index',axis=1).plot(kind='barh',fontsize=12, figsize=(8,20), colormap='viridis')
個人投資家のためのWebスクレイピング(4)〜 Pythonを使って、東証「空売り比率」を取得し、グラフ化してみよう【下】
前回積み残してしまった過去12ヶ月のバックデータを取り込むようにスクリプトを修正しましたので、アップデートしておきます。
空売り集計のトップページ(https://www.jpx.co.jp/markets/statistics-equities/short-selling/index.html)の上部右側にバックデータの年月を選択できるので、選択して表示させてみると、アドレスは以下のようになっています。「.html」の左側の数字だけが変化しているだけなので、簡単に取り込めそうです。
https://www.jpx.co.jp/markets/statistics-equities/short-selling/00-archives-01.html https://www.jpx.co.jp/markets/statistics-equities/short-selling/00-archives-02.html ... https://www.jpx.co.jp/markets/statistics-equities/short-selling/00-archives-12.html
これらのアドレスをurlsにリストとして保存しておいて、その後、ひとつひとつurlとしてアクセスし、pdf_listに保存場所を抽出していきます。
urls = [] url = 'https://www.jpx.co.jp/markets/statistics-equities/short-selling/index.html' urls.append(url) # urlsにバックデータのurlを蓄積 for i in range(12): if i <= 8: urls.append("https://www.jpx.co.jp/markets/statistics-equities/short-selling/00-archives-0" + str(i+1) + ".html") else: urls.append("https://www.jpx.co.jp/markets/statistics-equities/short-selling/00-archives-" + str(i+1) + ".html") # urlsからひとつひとうつurlを取り出し、url毎に必要なpdf保存場所をpdf_listに抽出 for url in urls: res = requests.get(url) # 東証のホームページだとres.encoding = 'ISO-8859-1'となり、res.textが文字化けするため、 # 以下の行を入れる。そうすると、res.encoding = 'utf-8'となる。 res.encoding = res.apparent_encoding soup = BeautifulSoup(res.text, 'html.parser') s = soup.find('div', {'class': 'component-normal-table'}) a_tags = s.find_all('a') for a_tag in a_tags: if a_tag.get('href')[-5] == 'm': pdf_list.append(a_tag.get('href'))
そして、抽出したpdf_listをもとに、pdf_ファイルを取得して、tempフォルダ下に保存していきます。
base_url = 'https://www.jpx.co.jp' # tempフォルダ下にpdfファイルを取得する for i, x in enumerate(pdf_list): url = base_url + x urllib.request.urlretrieve(url,'temp/shortselling'+ str(i) + '.pdf')
後は、前回と一緒です。ただし、Errorが発生してもスクリプトが止まらないようにtry〜exceptを加えておきます。また、傾向を掴むために、期間中の平均値を点線で加えておきます。 そのスクリプトを実行した結果はこちらになります。それっぽいグラフになりました。
今回のスクリプトもこちらにアップしておきます。ご参考まで。
[東京証券取引所「空売り比率」推移(過去12ヶ月)](https://gist.g
個人投資家のためのWebスクレイピング(4)〜 Pythonを使って、東証「空売り比率」を取得し、グラフ化してみよう【中】
さて、前回に続いて、東証「空売り比率」のデータを取得して、グラフ化してみましょう。
前回、東証ホームページからPDFファイルを取得しましたので、次にそれらPDFファイルからテキストを抽出してみます。
PDFファイルからのテキスト取得については、以下のサイトで多少お世話になったPyPDF2を使ってみました。
Automate the Boring Stuff with Python
本サイトの元の英語本は、日本語に翻訳されています(こちら↓)。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
ここに記載の通り、以下の通り試してみました。
import PyPDF2 # Open a PDF file. fp = open('temp/shortselling0.pdf', 'rb') pdfReader = PyPDF2.PdfFileReader(fp) pageObj = pdfReader.getPage(0) pageObj.extractText()
ですが、表示されたのは、文字化け。
'\'5Gˆ0£˚˜\n>Þ>Ü>Ý>ä>Û>ã>Û>Ý>ß\n0ɢd\nFÇ\n2ˇ5 \n>Ô>Õ\n˚ı"á\n>Ô>Õ>Û>Ô>Õ\n2ˇ5 \n>Ô>Õ\n˚ı"á\n>Ô>Õ>Û>Ô>Õ\n2ˇ5 \n>Ô>Õ\n˚ı"á\n>Ô>Õ>Û>Ô>Õ\n>Þ>Ü>Ý>ä>ã˙v>Ý>߈¥>Ý>Ø>ä>Ü>Ý>Ø>Þ>Ý>Þ>â>Ü>Ú>Þ>Ñ>å>ä>Þ>Ø>Ý>à>â>ß>Þ>Ú>ä>Ñ>Þ>Ü>â>Ø>â>â>Þ>â>Ú>å>Ñ>Þ>Ø>å>å>Ü>Ø>Ü>Þ>Ü\nFÿ˝4\'¼G"0£ˆX˛+\'ìF÷FÒG˙F¹\nGˆFþFûFÿ#ÝG"F¹\n˙vˆ¥\n˜@ˆe\'5Gˆ˝A0dFÒGˆ\'5Gˆ˝A0dFúFç\n0£\n>Ô>Õ\n'
こちら↓によると、PyPDF2のextractTextは貧弱な機能のようです。こちらに記載のようにpdfminer
(python3系ではpdfminer3k)を使ってみることにしました。
pdfminer3kに関しては、こちらのブログ記事のスクリプトをほぼそのまま使わせていただきました。
from pdfminer.pdfparser import PDFParser from pdfminer.pdfparser import PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfparser import PDFPage from pdfminer.pdfdevice import PDFDevice from pdfminer.converter import PDFPageAggregator from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.layout import LTTextBoxHorizontal # Open a PDF file. fp = open('temp/shortselling0.pdf', 'rb') # Create a PDF parser object associated with the file object. parser = PDFParser(fp) document = PDFDocument() parser.set_document(document) # Create a PDF document object that stores the document structure. # Supply the password for initialization. password="" document.set_parser(parser) document.initialize(password) # Create a PDF resource manager object that stores shared resources. rsrcmgr = PDFResourceManager() # Set parameters for analysis. laparams = LAParams() # Create a PDF page aggregator object. device = PDFPageAggregator(rsrcmgr, laparams=laparams) interpreter = PDFPageInterpreter(rsrcmgr, device) pages = list(document.get_pages()) page_1 = pages[0] # 1st page page_1 # interpreter page1 interpreter.process_page(page_1) # receive the LTPage object for the page. # layoutの中にページを構成する要素(LTTextBoxHorizontalなど)が入っている layout = device.get_result() # print(layout) text = [] for l in layout: # print(l) # l is object if isinstance(l, LTTextBoxHorizontal): text.append(l.get_text()) print(text)
これを実行してみると、以下の通り、きれいに出力されました。
['空売り集計(日次)\n', '年月日\n', '実注文\n', '空売り(価格規制あり)\n', '空売り(価格規制なし)\n', '売買代金\n(a)\n', '比率\n(a)/(d)\n', '売買代金\n(b)\n', '比率\n(b)/(d)\n', '売買代金\n(c)\n', '比率\n(c)/(d)\n', '2018/7/13\n(株)東京証券取引所\n', '【単位:百万円】\n', '合計\n(d)\n', '2018年7月13日\n', '1,801,212\n', '60.2%\n', '982,146\n', '32.8%\n', '206,662\n', '6.9%\n', '2,990,020\n', '(注1)数値は外国株券等を含む合計数値(概算)である。\n(注2)空売りの中には信用取引を含む。\n']
上記のテキストデータから、12番目(日付)と17番目(実取引の割合)を抽出して加工すれば、必要なデータが得られます。 日付については、"\n"でsplit。その最初のテキストを更に"/"でsplit。それらをyear, month, dayに格納し、datetimeオブジェクトに変換します。
year, month, day = text[11].split('\n')[0].split('/') datetime.datetime(int(year), int(month), int(day))
次に、空売り比率ですが、実取引の割合をテキストから小数に変換し、100から引けば算出できます。
100 - float(text[16].rstrip('%\n'))
これらを先ほどのスクリプトに加えて、取り込んだ複数のファイルを処理できるように forループにします。そこで得られたデータ系列をもとに、matplotlibで描画すれば出来上がり。
PDFファイルからテキストを取得するのに、多少苦労しましたが、何とかグラフ化までこぎ着けました。 参考までに最後にスクリプトを掲載しておきます。
今回のデータ系列は少しでしたが、バックデータは過去12ヶ月分あるようなので、それらも取り込めるように工夫することも必要かもしれません。
個人投資家のためのWebスクレイピング(4)〜 Pythonを使って、東証「空売り比率」を取得し、グラフ化してみよう【上】
先日の日経新聞のマーケット欄に出ていました東証株式市場の空売り比率。これも今後の株式市場を占うのに大事な指標かと思いますので、Pythonを利用して、東証のホームページからWebスクレイピングしてみましょう。
「東証 空売り比率」で、ググってみると、すぐに見つかりました。
https://www.jpx.co.jp/markets/statistics-equities/short-selling/index.html
ホームページを見ると、日付毎にPDFが張り付いているので、これらを一旦、作業ファイルに保存しておくことにしようと思います。そして、後でPDFからテキストデータを取り出せばいいと思いつつも、PDFからテキストデータをうまく取り出せるかな、とちょっと心配。
取り敢えず、まずは、いつものようにrequests
モジュールとBeautifulSoup
モジュールを使ってスクレイピングを行っていきます。
import requests from bs4 import BeautifulSoup # urlとして、先ほど検索した東証「空売り集計」のトップページを指定。 url = 'https://www.jpx.co.jp/markets/statistics-equities/short-selling/' res = requests.get(url) # 東証HPだとデフォルトではres.encoding = 'ISO-8859-1'となり、res.textの漢字が文字化けしてしまう。 # そこで、以下の行を加えると、res.encoding = 'utf-8'となり、文字化けしなくなる。 res.encoding = res.apparent_encoding # BeautifulSoupオブジェクトを生成。解析を行うパーサーとして'html.parser'を指定。 soup = BeautifulSoup(res.text, 'html.parser')
さて、ここで、Google Chromeの検証機能を使って、PDFファイルが格納されているディレクトリのリンクを特定しましょう。
以下の画像の通り、<div>タグ
のうち、<class="component-normal-table">
となっているタグをまず指定し、その後、find_all()
メソッドを使い、<a>タグ
を全て取得します。そして、get()
メソッドの引数を"href"とすることで、リンクを取得します。
ただし、ホームページをよく見ると「空売り集計」欄だけでなく、「業種別集計」欄もあります。検証機能でリンクのPDFファイル名をよく見ると、「空売り集計」欄のファイル名の末尾は***-m.pdf
となっており、「業種別集計」欄の末尾は***-g.pdf
となっています。
今回は「空売り集計」欄のPDFだけ取得したいので、リンクの後から5文字目が"m"となっているリンクのみ取得するようにします。
# <class="component-noramal-table>となっている<div>タグで囲まれた範囲の情報を取得 s = soup.find('div', {'class': 'component-normal-table'}) # その範囲で、更に<a>タグで囲まれた情報を全て取得 a_tags = s.find_all('a') pdf_list = [] # それらの<a>タグで囲まれた情報を一つ一つ取り出す。 for a_tag in a_tags: # get('href')メソッドで、hrefで指定しているリンクを取り出し、後ろから5文字目が"m"のリンクのみ取得して、pdf_listに追加する。 if a_tag.get('href')[-5] == 'm': pdf_list.append(a_tag.get('href'))
これで、無事、リンクを取得できました。
['/markets/statistics-equities/short-selling/nlsgeu0000037ver-att/180713-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037t4d-att/180712-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037pl7-att/180711-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037nj9-att/180710-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037jr9-att/180709-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037h3w-att/180706-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037efl-att/180705-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu00000379yi-att/180704-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu000003764s-att/180703-m.pdf', '/markets/statistics-equities/short-selling/nlsgeu0000037115-att/180702-m.pdf']
このリンクは、東証トップページからの相対位置を示していますので、絶対位置に変換して、作業フォルダの下にtempフォルダを作り、そこに保存します。
import os import urllib.request import time base_url = 'https://www.jpx.co.jp' for i, x in enumerate(pdf_list): url = base_url + x urllib.request.urlretrieve(url,'temp/shortselling'+ str(i) + '.pdf') time.sleep(1) # 礼儀として1秒待つ
ここまで、お疲れ様でした。さて、いよいよ次は、これらのPDFファイルから、必要なテキストを取得して、データ系列を作成し、可視化していきましょう。ただし、PDFファイルを取り扱うモジュールも必要になり、長くなってしまうので、次回にしたいと思います。それでは。
個人投資家のためのWebスクレイピング(3) 〜 Pythonを使って、東証「外国人投資家動向」推移を描く
個人投資家のためのPythonによるWebスクレイピング第三弾です。
日本株のETFに投資している自分として気にしている指標の一つに東証が毎週公表している「外国人投資家動向」があります。時々、マーケットアナリストの方が「外国人投資家動向」推移をレポートしてくれるのですが、残念ながら、必ずしも毎週ではないんですね。
一方で、自分がExcelか何かでグラフを作成しようとすると、結構面倒なんですよね。毎週公表される資料には、時系列の推移が載っていないので、自分で毎週Excelに手入力して、グラフを描かないといけない。他にもやらなくてはいけないことが多いサラリーマンがその作業を継続していくことはなかなか難しいのではと思います。
そこでPythonの出番。東京証券取引所のホームページから週次Excelデータファイルをダウンロード。各データファイルを開けて、外国人投資家売買金額のデータのみ抽出して、リスト化。それをmatplotlibで描画するスクリプトを作成しましたのでシェアいたします。
これで個人投資家の皆さんも、面倒な作業から脱却できますね。
個人投資家のためのWebスクレイピング(2) 〜 Pythonを使って、米10年債先物ポジション推移を描く
本日の日経新聞に「ドル、反転下落の兆し 米長期金利に低下観測 世界経済の先行き懸念 」と題する記事が出ていました。その記事中に「米10年先物の売りの勢いは鈍化(投機筋の持ち高)(出所)米商品先物取引委員会」のタイトルの図表が掲載されていましたが、「債券先物市場の投機筋による建玉残高をみても売り越し幅の拡大が止まっていて、米長期金利の上昇観測は薄れている」との文脈で使われたものです。これは、まさに前回の記事で記載させていただいたIMM通貨先物ポジションのデータと出所は同じはず。
ということで、早速、前回のスクリプト(ファイルダウンロード)にて取り込んだファイル"annual.txt"を見てみると、'10-YEAR U.S. TREASURY NOTES - CHICAGO BOARD OF TRADE' のデータが複数あることが分かりました。そこで、前回のスクリプトのデータを抽出する条件を
if 'JAPANESE YEN - CHICAGO MERCANTILE EXCHANGE' in data[i]:
から
if '10-YEAR U.S. TREASURY NOTES - CHICAGO BOARD OF TRADE' in data[i]:
に変えて、そのうえで2017年からのデータを取得できるようにスクリプトを若干変更して実行すると、以下のようになりました。
以下の本日の日経記事の図表と比較すると、まさに欲しいデータそのものですね。
(日本経済新聞2018年7年5日朝刊から)
今後とも色々なデータを取得していきたいと思います。