見出し画像

PDFから表データを抽出する。

株価が収益性を反映していると考えれば、収益が増えるには、国民の消費が増える必要があるため、雇用は重要であり、その中でも、雇用統計の先行指標となる「新規失業保険申請件数」は最重要である。

そんな新規失業保険申請件数を「ささっ」と確認するツールを作ってみた。

このツールでは、下記の様に
左の米国労働省のPDFのテーブルから、右のようにデータを抽出できます。

画像3

株関連の情報をチェックしながら、Pythonスキルも上げるのだ!

Pythonのプログラムスキル的にできる事は下記の通り。

Pythonのプログラムスキル的にできる事。
 ・PDFファイルからデータ抽出
 ・Web上の情報からデータ取得(PC内のデータでもOK)
 ・Web上のファイル更新日の確認。
 ・データフレーム内の文字列置換
 ・データフレームの項目分割

株関連として取得できる情報は下記の通り。

株関連として取得できる情報。
 ・新規失業保険申請件数をチェック
 ・失業保険の受給件数をチェック
 ・失業保険の受給率をチェック
 ・季節調整あり・なしのデータをチェック

0.事前準備

事前準備はこちら。5分もあればできると思います。

1.ライブラリのインストール

下記のライブラリをインストールします。

pip install tabula-py

 ​2.コード実行

下記のコード実行を実行します。

処理の詳細は、コメント文で記載。

import pandas as pd
import tabula.io 
from tabula.io import read_pdf
import requests

# 新規失業保険申請件数のURL
url = "https://www.dol.gov/ui/data.pdf"
# PDF4ページ目のテーブルを取得
dfs = tabula.io.read_pdf(url, stream=True, pages = '4')
# 0番目のテーブルの項目をスペースで分割
df = dfs[0]["Unnamed: 0"].str.split(' ', expand=True)
# 数字として処理するために桁区切りのカンマ「,」を削除
df = df.replace(',', '', regex=True)

# 該当箇所を抜き出して出力
print ('-----------------------------------------------------')
print ('米国 新規失業保険申請件数\n')
print ('#新規失業保険申請件数')
print (" 予想  :")
print (" 調整あり:" f'{int(df.loc[3,3])/10000:.1f}' " 万 ← " f'{int(df.loc[3,4])/10000:.1f}' " (" f'{(int(df.loc[3,3])-int(df.loc[3,4]))/10000:.1f}' ")")
print (" 調整なし:" f'{int(df.loc[4,3])/10000:.1f}' " 万 ← " f'{int(df.loc[4,4])/10000:.1f}' " (" f'{(int(df.loc[4,3])-int(df.loc[4,4]))/10000:.1f}' ")")
print ('\n#受給件数')
print (" 調整あり:" f'{int(df.loc[8,3])/10000:.1f}' " 万 ← " f'{int(df.loc[8,4])/10000:.1f}' " (" f'{(int(df.loc[8,3])-int(df.loc[8,4]))/10000:.1f}' ")")
print (" 調整なし:" f'{int(df.loc[9,3])/10000:.1f}' " 万 ← " f'{int(df.loc[9,4])/10000:.1f}' " (" f'{(int(df.loc[9,3])-int(df.loc[9,4]))/10000:.1f}' ")")
print ('\n#受給率')
print (" 調整あり:" + df.loc[11,4] +" ← "+ df.loc[11,5] )
print (" 調整なし:" + df.loc[12,4] +" ← "+ df.loc[12,5] )

# 更新日を確認
res = requests.head(url)
print("\n---------- 更新日 ------------")
print(res.headers["Last-Modified"]+"\n")
print(url)

# ここまで

3.結果

下記の結果が出力されます。

画像1

新規失業保険申請件数保険の受給件数受給率について、季節調整「あり・なし」の件数が出力され、データの更新日が出力されます。

データの更新日をみて、データが最新であることを確認してください。

そして、最終行には、URLが表示されるため、ココをクリックして、元データを確認する事もできます。

元データには、下記の様に、増減が多かった州について、要因がコメントされていたりもするので、気になる時は、元データを確認するのも良いと思います。

画像2

出典:米国労働省 新規失業保険申請件数

何かの参考になれば幸いです。では!

おつかれさん「缶コーヒー1杯ぐらい、ご馳走してあげよう」という太っ腹な方がいれば、よろしくお願いします!
参考になったら「ハートボタン、フォロー、リツイート」をお願いします。
読まれる可能性があがるので、次の記事を書くやる気が出ます。


ここから先は

24字

¥ 100

この記事が気に入ったらサポートをしてみませんか?