Mac Jupyter notebook メモ
Cmd + ←
で行頭へ移動後
Shift + cmd + →
で行を選択できる
単語ごとの選択は
Option + ←
単語の削除は
Option + backspace
これで
効率的にコードを書ける
[/python]
search_indicate[‘actual’] =search_indicate[‘actual’].str.replace(r”\D”, “”,regex=True)
search_indicate[‘forecast’] =search_indicate[‘forecast’].str.replace(r”\D”, “”,regex=True)
search_indicate[‘previous’] =search_indicate[‘previous’].str.replace(r”\D”, “”,regex=True)
search_indicate
[/python]
これで変換して
date2 =[] for i in search_indicate['date']: new_date = datetime.datetime.strptime(i,"%d/%m/%Y").strftime("%Y-%m-%d") date2.append(new_date) search_indicate['date']=search_indicate['date'].str.replace('/','-') search_indicate['date'] = date2 search_indicate.fillna(0)
で日付を修正
あとは
actual =( alt.Chart(search_indicate) .mark_line(opacity=0.8,clip=True) .encode( x="date:T", y=alt.Y("actual:Q",stack=None) ) ) forecast =( alt.Chart(search_indicate) .mark_line(opacity=0.8,clip=True,color='red') .encode( x="date:T", y=alt.Y("forecast:Q",stack=None), ) ) previous =( alt.Chart(search_indicate) .mark_line(opacity=0.8,clip=True,color='green') .encode( x="date:T", y=alt.Y("previous:Q",stack=None), ) ) alt.layer(actual,forecast,previous).resolve_scale( y = 'independent' )
で
それぞれのチャートを表示
次に
indicatorの ( 以降を
削除する
まずは
# s = 'abcxyz-xyz(' # print(my_removesuffix(s, '-xyz')) txt ="ANZ Job Advertisements (MoM)" print(txt)
として ( 以降を削除
Pythonで文字列の先頭と末尾から空白や文字列を削除する:strip()
を参考にしたが
strip ではできなかった
Replace と正規表現で行う
0回以上の繰り返し
*
任意の英数字は
[a-zA-Z0-9_]
か
\w
txt.replace("(","")
だとできた
エスケープは不要
year_economic_data2['event']=year_economic_data2['event'].replace("\([a-zA-Z0-9_]+\)","",regex=True) year_economic_data2
とすることで解決
あとは経済指標カレンダーも同様に処理
# dealing_calender['event']= dealing_calender['event'].str.replace('(','\(').str.replace(')','\)')
を
dealing_calender['event']=dealing_calender['event'].replace("\([a-zA-Z0-9_]+\)","",regex=True)
とすることで解決
ただし
search_indicate['actual'] =search_indicate['actual'].str.replace(r"\D", "",regex=True) search_indicate['forecast'] =search_indicate['forecast'].str.replace(r"\D", "",regex=True) search_indicate['previous'] =search_indicate['previous'].str.replace(r"\D", "",regex=True) search_indicate
だと
小数点のものまで書き換えてしまい
マイナス、小数点まで削除してしまう
不等号などはそのままにして
%
英数字のみ
削除すればいけるはず
Python: 正規表現ライブラリを使って、グループ化による置換
を参考に
import re print(re.sub(r'([A-Z][a-z]?)(\d{1,3})', r"\\Nuc{\1}{\2}{}", "He4")) # \Nuc{He}{4}{} print(re.sub(r'([A-Z][a-z]?)(\d{1,3})L', r"\\Nuc{\1}{\2}{\\Lambda}", "He4L")) # \Nuc{He}{4}{\Lambda}
みたいに
search_indicate['actual'] =search_indicate['actual'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate['forecast'] =search_indicate['forecast'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate['previous'] =search_indicate['previous'].str.replace(r"[a-zA-Z%]", "",regex=True) search_indicate
とすればできた
とりあえず問題はあるけど
経済指標の取得後の処理はできてきた
次はIMM ポジションの取得
https://www.gaitame.com/market/imm/imm_currency.xls
からダウンロードしたいが
Mac だとそのままだとできないらしい
と思ったが Jupiter notebook からだとファイルを開けないみたい
Finder からだと普通にひらけた
Wgetは Mac にはないけど
Curl で代用できる
を参考に
-O オプションを付けることでファイル取得と保存ができる
!curl "https://www.gaitame.com/market/imm/imm_currency.xls" -O
これで取得はコマンドでできるけど
Excel ファイル読み込みでエラー
No module xlrd
のエラーが出たので
【Python エラー】No module xlrd の対処法。権限がなくてxlrdモジュールをインストールできないとき
を参考に
!pip3 install xlrd
でインストール
あと excel の操作もできるように
!pip3 install openpyxl
で追加
あとは notebook を再起動すると
普通にExcelファイルの取り扱いできた
とりあえず
データ取得関連はほぼできた