経済指標カレンダーの取得
を参考にみんかぶからスクレイピング
でーたを綺麗にするために
列名を主導で追加
必要の無い列、行を削除
が必要になる
しかし
1 2 3 4 | import pandas as pd dfs = pd.read_html(url) #テーブルのオブジェクトを生成 |
を実行してもリストになってしまう
Pandasで超簡単!WEBスクレイピング(表・htmlのtable取得)
を参考に
read?html に
必要なライブラリ不足かと思い
1 | pip install beautifulsoup4 lxml html5lib |
でインストールしてみたが変わらない
を参考に
1 2 3 | import pandas as pd dfs = pd.read_html(url2) # webページに複数のテーブルがある場合、リスト形式でdfsに格納されます |
とすると
webページに複数のテーブルがあるとリストになってしまう
なので
1 2 3 4 5 | import pandas as pd dfs = pd.read_html(url) #テーブルのオブジェクトを生成 dfs[ 0 ] |
とすればテーブルとして表示できる
よくみたら出力するときに
dfs[0]
で指定していた….
とりあえずこれで当日の経済指標カレンダーは取得できそう
0からカウントされるので
0〜4までで1週間のカレンダー取得ができる
なお変動の pips については
米ドル/円やクロス円(ユーロ/円、ポンド/円など)の場合
1pip=0.01円(1銭)
10 pips=0.1円(10銭)
100 pips=1円(100銭)
米ドルストレート(ユーロ/ドル、ポンド/ドルなど)の場合
1pip=0.0001ドル(0.01セント)
10pip=0.001ドル(0.1セント)
100pip=0.01ドル(1セント)
となっている
これで
streamlit で表示できれば次にループ表示すれば週間カレンダーが表示できる
ので
1 | mkdir fx_tool |
で
作業ディレクトリを作成
使用するエディタは VS Code
1 2 | cd fx_tool/ code ./ |
で作業ディレクトリに移動
vscode が起動する
main.py
を作成
久しぶりなのでほぼ忘れているので
Visual Studio Code キーボード ショートカット
をみながら操作
しかし途中でライブラリインストール済みでも import でエラー
このため
vscide import
で検索
VSCode で Python の import や from のエラーが消えない
を参考に
F1 を押す
Python: Select Interpreter を入力
使用する python を conda のものに設定
デフォルトの
Use default Python interpreter path
だとなぜか pandas のインポートができなかったけど
これで解決
1 2 3 | from bs4 import BeautifulSoup import pandas as pd import streamlit as st |
でライブラリインポート
アプリのタイトルは
1 | st.title() |
で追加
経済指標カレンダーは
サイドバーで表示したいので
1 | st.sidebar.write() |
で記述していく
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | st.title( 'FX tool' ) st.sidebar.write( """ # 経済指標カレンダー 今週の経済指標カレンダー """ ) dfs = pd.read_html(url) #テーブルのオブジェクトを生成 dfs[ 0 ] dfs1 = dfs[ 0 ].dropna(subset = [ 4 ]) #4番にNaNが入っている行はバグなので、削除 dfs2 = dfs1.drop( 2 ,axis = 1 ) #2番目の列を削除。axis = 1は列を削除するオプション dfs2.columns = [ "発表時間" , "経済指標" , "前回変動幅(USD/JPY)" , "前回" , "予想" , "結果" ] #列名を手動で追加。 #前処理終了 dfs2 |
st.sidebar.table(dfs2)
としてみたが
サイドバー表示だと見えにくいので本体の方にテーブル表示にする
なおサイドバーのwidth を変更する方法として
Change width of sidebar
にあるように
st.markdown
で設定も考えたが、使いにくいものになりそうなので別のレイアウトにすることに